上一阶段我们已经通过Scrapy实现了特定网页的特定信息,meta的使用演示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个url,文章列表存在于标签id="archive"下,然后就像剥洋葱一样得到我们想要的URL链接。4、点击下拉三角,不难发现文章详情页的链接隐藏不深,如下图圆圈所示。5.根据标签,我们根据地图搜索,加上选择器工具,获取网址就像翻包一样。在cmd中输入以下命令,进入shell调试窗口,会事半功倍。再次强调,这个网址是所有文章的网址,不是某篇文章的网址,不然调试半天出不出结果。6、根据第四步的网页结构分析,我们在shell中编写CSS表达式并输出,如下图所示。其中a::attr(href)的用法非常巧妙,也是提取标签信息的一个trick。推荐朋友们在提取网页信息的时候可以经常使用,非常方便。至此,获取到首页所有文章列表的url。提取网址后,如何交给Scrapy下载?下载完成后如何调用自己定义的分析函数?想知道接下来会发生什么,还是听下一篇文章来分解吧。/总结/本文主要介绍了Scrapy爬虫框架抓取其中一个网页数据的原理,为后续抓取全网数据做铺垫。更多精彩操作将在下一篇文章中呈现。希望对你的学习有所帮助。如果想深入了解Python,可以参考学习网站:http://pdcfighting.com/,点击阅读原文,可直接前往~
