从网页抓取数据(获赠Python从入门到进阶共10本电子书(组图))
优采云 发布时间: 2021-11-02 05:12从网页抓取数据(获赠Python从入门到进阶共10本电子书(组图))
点击上方“Python爬虫与数据挖掘”关注
回复“书籍”,从入门到进阶共领取10本Python电子书
这个
日
小鸡
汤
孤灯不省人事,绝望了,卷起帘子望着月亮和天空,叹了口气。
/前言/
前段时间小编给大家分享了Xpath和CSS选择器的具体用法。有兴趣的朋友可以戳这些文章文章来复习,,,,,,,来学习选择器的具体用法,可以帮助自己更好的使用Scrapy爬虫框架。在接下来的几篇文章中,小编将为大家讲解爬虫主文件的具体代码实现过程,最终实现对网页所有内容的爬取。
上一阶段我们通过Scrapy实现了特定网页的具体信息,但是没有实现所有页面的顺序提取。首先我们梳理一下爬行的思路。大体思路是:获取到第一页的URL后,再将第二页的URL发送给Scrapy,让Scrapy自动下载网页的信息,然后通过第二页的URL继续获取URL第三页。由于每个页面的网页结构是相同的,这样反复迭代就可以实现对整个网页的信息提取。具体的实现过程会通过Scrapy框架来实现。具体教程如下。
/执行/
1、首先,URL不再是特定文章的URL,而是所有文章列表的URL,如下图,把链接放在start_urls中,如下图所示。
2、接下来我们需要修改parse()函数,在这个函数中我们需要实现两件事。
一种是获取某个页面上文章的所有URL,解析得到每个文章中的具体网页内容。二是获取下一个网页的URL,交给Scrapy处理。下载完成后交给parse()函数进行下载。
有了前面的Xpath和CSS选择器的基础知识,获取一个网页链接的URL就比较简单了。
3、分析网页结构,使用网页交互工具,我们可以很快发现每个网页有20个文章,也就是20个网址,文章列表存在于id=在“存档”标签下,我们会像剥洋葱一样得到我们想要的URL链接。
4、点击下拉三角形,不难发现文章详情页的链接并没有隐藏很深,如下图圆圈所示。
5、根据标签,我们根据图片搜索图片,并添加选择器工具,获取URL就像探索胶囊一样。在cmd中输入如下图命令进入shell调试窗口,事半功倍。再说一遍,这个网址是文章的所有网址,而不是某个文章的网址,否则以后很长一段时间都无法调试。
6、根据第四步对网页结构的分析,我们在shell中编写CSS表达式并输出,如下图所示。其中a::attr(href)的用法很巧妙,也是提取标签信息的一个小技巧。推荐朋友们在提取网页信息的时候可以经常使用,非常方便。
至此,第一页文章列表的所有URL都已获取。URL解压后,如何交给Scrapy下载呢?下载完成后,我们如何调用自己定义的解析函数呢?