爬虫抓取网页数据(获赠Python从入门到进阶共10本电子书(组图))
优采云 发布时间: 2022-02-19 02:20爬虫抓取网页数据(获赠Python从入门到进阶共10本电子书(组图))
点击上方“Python爬虫与数据挖掘”关注
回复“书籍”获取Python从入门到进阶共10本电子书
这
日
小鸡
汤
天长魂远,梦魂难到关山。
/前言/
上一篇文章,,, 我们解析了列表页中所有文章的URL,交给Scrapy去下载,在这个文章中我们将提取下一页并交给Scrapy下载,具体教程如下。
/执行/
1、首先在网页中找到“下一页”的相关链接,如下图所示。与网页交互以查找“下一页”URL。
可以看到下一页的链接存在于a标签下的nextpage-numbers属性下的href标签中,而且这个属性是唯一的,所以可以很容易的定位到链接。
2、可以在scrapyshell中调试,然后将满足条件的表达式写入代码中,如下图所示。
在上图中,可以通过两种方式提取目标信息。推荐第二种方式,其中 .next.page-numbers 表示同一个类下有两个属性,这样可以更快更准确地定位标签。需要注意的是,这两个属性直接使用的是点号。连线不留空格,初学者容易出错。另外,函数extract_first("")在前面的文章中提到过,它的默认值为空,如果没有匹配到目标信息,则返回None。
3、获取到下一页的链接后,需要对其进行判断,以防万一,具体代码如下图所示。
至此,我们已经提取了下一页的URL,交给Scrapy去下载。需要注意的是,除了URL拼接部分,回调回调函数是这里的parse()函数,意思是回调下一页的文章列表页,而不是文章详情页面,需要特别注意。
4、接下来我们可以调试整个爬虫,在爬虫主文件中设置断点,如下图,然后在main.py文件中点击运行Debug,
5、稍等片刻,等待调试结果出来,如下图,结果一目了然。
6、到这里,我们基本完成了文章的全部提取,简单回顾一下整个爬取过程。首先我们在parse()函数中获取文章的URL,然后交给Scrapy去下载。下载完成后,Scrapy调用parse_detail()函数提取网页中的目标信息。本页 提取完成后,提取下一页的信息,将下一页的URL交给Scrapy下载,然后回调parse()函数提取文章列表的URL在下一页,像这样来回迭代直到最后一页,整个爬虫就停止了。
7、使用Scrapy爬虫框架,我们可以获取整个网站的所有文章内容,中间的具体下载实现不需要我们手动完成,还有是不是需要感受一下 Scrapy 爬虫的强大?
目前我们刚刚遍历了整个网站,知道了目标信息的提取方法。暂时我们还没有将目标数据保存到本地或数据库中。我们会继续和下面的文章约好~~~
/概括/
本文基于 Scrapy 爬虫框架,使用 CSS 选择器和 Xpath 选择器来解析列表页面中的所有 文章 URL,遍历整个 网站 获取数据 采集,至此,我们有能够实现全网文章采集的数据都没了。
如果想进一步了解Python,可以参考学习网站:点击阅读原文,可以直接去~
- - - - - - - - - -结尾 - - - - - - - - - -