博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎样利用Python爬取小说,这个小实例告诉你
阅读量:5743 次
发布时间:2019-06-18

本文共 2105 字,大约阅读时间需要 7 分钟。

怎样利用Python爬取小说,这个小实例告诉你

今天主要分享如何抓取网页信息,并生成txt文件内容!

Python抓取网页技能——Python抓取网页就是我们常看见的网络爬虫,我们今天所要用到的就是我们Python中自带的模块,用这些模块将网页内容爬取下来,并生成一个txt文件。

(一)实例思路:

我们所需要用到的模块:

urllib2—urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的能力,他同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他。

怎样利用Python爬取小说,这个小实例告诉你

re—Python的re模块就是我们开始想知道的大名鼎鼎的正则表达式,正则表达式(可以称为REs,regex,regex pattens)是一个小巧的,高度专业化的编程语言,它内嵌于Python开发语言中,可通过re模块使用。正则表达式的pattern可以被编译成一系列的字节码,然后用C编写的引擎执行。

怎样利用Python爬取小说,这个小实例告诉你

怎样利用Python爬取小说,这个小实例告诉你

re—正则表达式我们本节就不去重点讲了,基础同学们可以去看看正则表达式的详细内容:http://www.runoob.com/python/python-reg-expressions.html。在我的博客中有详细的正则表达式(字符)详解!

那么接下来我们开始我们的小实例——爬取百度贴吧小说!

首先我们要明确一下我们项目的思路:

# -*- coding: utf-8 -*-

#模块:urllib2, re。

#正则表达式:------想要的内容 findall(正则表达式,源码)

#百度贴吧爬取内容:1.获取源码

# 2.解析超链接

# 3.获取标题

# 4.获取内容

# 5.发送命令,调用主函数

我们在进行项目时要将整体突出程序化,那么我们开始第一步的实施调取Python中自带的模块:

怎样利用Python爬取小说,这个小实例告诉你

将我们所需的模块插入后,我们开始项目的实施:

怎样利用Python爬取小说,这个小实例告诉你

上述代码是我们要获取的网页源码信息,因为我们需要多方面的爬取我们想要的内容,所以我们创建一个类来实现其中所有函数的功能。

怎样利用Python爬取小说,这个小实例告诉你

baseUrl就是我们想要获取的网址!

怎样利用Python爬取小说,这个小实例告诉你

网址获取到了之后,我们要定义一个函数,来获取我们想要获取的网页信息,在函数中我们定义了两个变量,这两个变量是我们正则匹配时要需要用到的!

我们在其中所用到的:

怎样利用Python爬取小说,这个小实例告诉你

这样的语句就是判断我们的程序有没有错误,看我们是否获取到我们想要的信息,如果没有获取到就给编译器返回一个e值!

接下来我们要使用我们的正则表达式来获取其中我们想要的内容了!

怎样利用Python爬取小说,这个小实例告诉你

这一段定义的函数是将我们所获取到的网页信息,匹配到我们想要的位置,然后截取下来!并且将网页匹配的信息生成一个text1.txt的文本文件,‘w’就是写入信息!

怎样利用Python爬取小说,这个小实例告诉你

这里我们就用到了re模块中的包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创建模式对象

参数描述:

pattern匹配的正则表达式string要匹配的字符串。

flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

怎样利用Python爬取小说,这个小实例告诉你

接下来我们再看另一个re模块中的函数python 正则表达式 re findall 方法能够以列表的形式返回能匹配的子串。

re.findall(pattern, string[, flags]):

怎样利用Python爬取小说,这个小实例告诉你

我们来看一下这个函数的实例:

怎样利用Python爬取小说,这个小实例告诉你

将我们我所要查询到的数字以列表的形式输出出来!

怎样利用Python爬取小说,这个小实例告诉你

在这段代码中,我们用到了Python文件写入,这个地方就是生成我们txt文本文件的地方,同学门可以找找详细的资料来研究一下,这里是对于想保存长期看的同学有很大的帮助哦!在这里我就不详细讲解了!

我们继续我们的项目:

怎样利用Python爬取小说,这个小实例告诉你

此处的代码就是我们要完成我们真正所需要的内容了,这里是完整的将我们所需要的小说爬取到手的,这里面用的正则匹配就是我们的贪婪匹配模式了!

怎样利用Python爬取小说,这个小实例告诉你

那么这一部分还是我们在上一匹配到的内容中,将class标签中的全部文字内容提取出来,但是其中我们会看到包含了很多img http等很多小标签,所以我们还需要将这些内容利用正则匹配中的sub函数将他们装换为空“ ”!

怎样利用Python爬取小说,这个小实例告诉你

这一串代码就是我们想要把其中像re.compile('<a.*?>|</a>')这样的内容获取到,然后再利用我们的sub函数将这些获取到的内容装换为“ ”空白!然后在输出到 i 这个列表中!最后将 i 输出!

我们在结尾处需要做一个程序运行无误的判断,那么我们就需要用到在编译器中给我们返回我们程序运行的开始!文件的生成结果:

怎样利用Python爬取小说,这个小实例告诉你

在这里我们要调用我们所创建的类,在这一个try中我们看到了一个range的函数,这个函数就是如果你需要一个数值序列,使用内建函数range() 会很方便,它产生等差级数序列。利用这个函数的意思就是我们要获取小说的全部内容!最后我们生成一个text1.txt的文件你就可以打开查看你想看的小说了哦!

今天的分享就到这里了,喜欢这篇文章的话记得转发+评论哦!

最重要的来了~~私信回复“01”可以获得更多免费爬虫资料哦,而且是视频教程哦!

转载地址:http://hsizx.baihongyu.com/

你可能感兴趣的文章
使用IDM继续下载会话过期的文件
查看>>
Angular2 VS Angular4 深度对比:特性、性能
查看>>
FAQ系列 | infobright下如何使用utf8字符集
查看>>
大漠折戟--记一次不顺利的灾备项目实施经历
查看>>
谈谈Ext JS的组件——容器与布局
查看>>
【MySQL数据库开发之四】MySQL 处理模式/常用查询/模式匹配等(下)
查看>>
让云触手可及:微软虚拟化远程直播
查看>>
平凡人生的核心烦恼与洒脱消解法
查看>>
vSphere HA集群与迁移解析
查看>>
SANS:2017年SOC调查报告
查看>>
Spread for ASP.NET 7新功能使用指南
查看>>
七天学会ASP.NET MVC(七)——创建单页应用
查看>>
思科路由器***之小结
查看>>
Windows 8 Metro应用开发XAML实例教程系列汇总
查看>>
怎样在Fedora20上安装Gnome3
查看>>
一名淘宝店长运营店铺靠谱指南
查看>>
浪潮存储进逼国际一线厂商
查看>>
Java/JSP中文乱码问题解决心得(转)
查看>>
CSS链接样式定义
查看>>
C#与数据结构--图的遍历
查看>>