hbuilderx简单网页代码_python上手--简单爬虫模块1.0开发

d7f584008c3a40cb65c16f31c1bcd310.png

数据获取最免费的方式就是从互联网直接爬取,而且方便存储加工,做进一步的归集汇聚使用。鉴于本系列文章属于python上手实践部分,笔者想到将python的窗体界面设计与requests+beautifulsoup技术简单爬虫结合起来,形成一个简单爬虫小模块呈现出来。

话不多说,先上图看看效果:

5507cae50bc8c5d8762a9b00df3f17a8.png

上图为本模块的主窗体界面,界面上橘红色背景颜色标识为两个核心步骤,第一步为执行requests模块获得网页源代码,第二步执行beautifulsoup模块对源代码进行精确解析。

在第一步中,输入框为网页地址输入区域,下面四个按钮分别用于查看robot协议,爬取网页源代码,查看爬取的源代码结果,清除输入框区域内容。当在输入框输入网页地址后,可以通过点击查看robot协议来了解目标网页地址是否允许被爬,如果不允许,还是不要继续的好。然后点击爬取源代码按钮,可以直接获取到目标网页的源代码,并提示可以保存到本地磁盘上。点击查看结果,就会弹出一个窗体,将网页源代码显示在该窗体区域内,此时就可以去查看特定内容所在区域的HTML代码,用于下一步的精确定位。

以爬取《剑王朝》小说为例,百度搜素一下有不少网站提供该小说文本素材。选取一个纵横中文网提供的资源来进行爬取,链接地址如下:

剑王朝无弹窗,剑王朝最新章节全文阅读,无罪的小说-纵横中文网​book.zongheng.com
ab4f919b8e7c5b962858cbefddd10c05.png

选择《第一章 剑炉余孽》作为目标网页爬取,网页地址为:

http://book.zongheng.com/chapter/401153/6785657.html

剑王朝_第一章 剑炉余孽_武侠·仙侠小说阅读页 - 纵横中文网​book.zongheng.com

将网页地址复制到本模块第一步的输入框中,然后点击爬取源代码按钮,很快弹出一个提示框:

6baa70ccc5f838363939519be266ee5e.png

如果点击是,就弹出保存过程,可以将源代码保存到本地磁盘上,如果点击否,提示框就关闭。这样就爬取了源代码。接下来直接点击查看结果按钮,弹出一个文本窗体,显示了网页源代码,示例如下图:

cd6a58e6eecf691ff05fc50e3662a5b8.png

如果有一定的HTML基础,在这个窗口内容中就可以使用提供的搜索或者下拉方式尝试定位到目标区域。如这第一章小说的标题,就在div class="title_txtbox"> 第一章剑炉余孽 </div>区域,小说的具体内容,就从<div class="content" itemprop="acticleBody"><p> 大秦王朝元武十一年秋,一场罕见的暴雨席卷了整个长陵,如铅般沉重的乌云伴随着恐怖的雷鸣,让这座大秦王朝的都城恍如堕入魔界。 </p>开始。如此,就可以使用div里的class名来实现定位。

界面上也对第一步执行requests模块过程进行了简要补充。需要说明的是,这种技术组合本身也仅对静态网页爬取适合,对于异步加载类网页内容效果不佳,同时在这个模块代码编写的适合目标网页是单独的一个网页,而不是一组,也就是暂时还无法进行批量抓取。

在第二步中,开始使用beautifulsoup模块进行精确解析,获得特定区域的网页内容。对于requests和beautifulsoup技术简要介绍可以访问之前的文章:

peter.cao:python上手--网站爬虫常规技术之Requests+BeautifulSoup组合​zhuanlan.zhihu.com
00a97ab84f55c8d6c0063cbe805edad0.png

与第一步一样,输入框区域下方提供了4个按钮,分别是目标爬取、输出至excel,输入至数据库以及清除输入。

在输入框区域输入内容选择器名称,如id名,class名,标签名,或者几种的组合,也就是用于精确定位的标准,然后点击目标爬取,就可以弹出一个窗体,在窗体区域显示出爬取的具体内容,点击上方的另存为就可以将爬取的内容保存为文本文件。如果有多列类型的内容爬取,可以在目标爬取后点击输出至excel,形成带序号的列表内容;另外还可以将其存入数据库用于后续使用。

第二步是接着第一步的结果继续往下执行。因此在第一步中的案例当获得了目标网页源代码后,利用分析的目标内容区域的div结构,定义好将要定位的css选择器,如想要获得小说第一章的内容,就可以使用class名和p标签名来精确定位。class名为content,标签名为p。明显p标签属于content类名所在的div的子标签。因此这里使用class名和子标签名的组合方式来抓取内容。在第二步输入框里输入:.content p,注意.content是css选择class的写法,与p中间有个空格。然后点击目标爬取按钮,很快就弹出一个文本显示窗体,如下:

a877f875ff4db6bd6bbd9b139d937d8d.png

这是小说第一章的全部内容,不过里面还包括p标签名。当点击另存为按钮时,就将p标签名过滤掉,同时将爬取的小说内容存到本地磁盘上,弹框如下:

2ef012b00214da7ec476c91cd943ea79.png

例如选择将其保存为result.txt,保存成功后,可以打开,内容如下:

99cf21b391804ac4ec2100760ed0a4cd.png

这就是小说第一章所有文本内容。接下来你就可以慢慢阅读小说了。

最后附上代码参考如下,内容相对比较多,可直接复制后张贴到IDLE或者pyCharm中运行,不过需要首先安装好相应的第三方库。由于每个网页所采用的技术或者HTML代码方式命名等不一样,使用此类模块来实现爬虫时,有些地方仍需局部改动才能精确爬取。

import 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值