1.分析网页确定思路首先我们打开头条街拍的页面,我们发现我们看到的详细页链接直接在源代码中并不能找到,于是我们就需要去检察我们的 ajax 请求,看看是不是通过 ajax 加载的,我们可以打开浏览器控制台,我们过滤 XHR 请求有了一些发现,如下图:在 xhr 请求中 offset 为 0 的部门,页面中的 data 为 0 的 数据部门清楚地地显示了我们想要查找的详细页的数据,然后随着我们转动条的下拉,页面会不停提倡 xhr 请求,offset 会随之不停的增大,每次增大的数目为 10 ,实际上是通过 ajax 去请求索引页,每次返回的 json 效果中有10条详细页的数据,这样我们就能不停在页面中获取到街拍新闻的信息。有了街拍新闻,自然我们还要进入新闻中获取街拍的美图,我们看一下新闻内部的图片是怎么获取的,如下图所示:很显着,街拍真正的图片的 URL 是通过网页中的 js 变量的方式获取的,我们思量使用 正则 来获取,另外,页面第一个 title 标签内里有该详细页面的名称,我们可以使用 BeautifulSoup 来提取出来思路梳理:(1)使用 requests 库去去请求网站,并获取索引网页(ajax 请求的 url)返回的 json 代码(2)从索引网页中提取出详细页面的 URL,并进一步抓取详细页的信息(3)通过正则匹配详细页中的图片链接,并将其下载到当地,并将页面信息和图片的 URL 生存到当地的 MongoDB(4)对多个索引页举行循环抓取,并开启多线程的方式提高效率2.代码实现config.pyspider.py3.运行效果。
本文来源:完美体育APPapp体育下载安装-www.jhconc.com