Scrapy1.4抓取58同城之翻页and详情页详解(二)

目标:抓取主页name、price、url。详情页introduce、address、phone_number

我们依旧采用Scrapy框架,并用Pyquery解析


废话不多说,先上结果、步骤与代码:

Scrapy1.4抓取58同城之翻页and详情页详解(二)_第1张图片

步骤:

因篇幅过大,步骤可参考上篇

代码如下

items.py:定义我们所要爬取的信息的相关属性,此例中需要爬取的是name、price、url、introduce、address、phone_number

Scrapy1.4抓取58同城之翻页and详情页详解(二)_第2张图片

City_58_test.py:主要是用于定义请求链接,并使用pyquery选取目标元素

Scrapy1.4抓取58同城之翻页and详情页详解(二)_第3张图片

pipeline.py:当item数据被city58_test爬虫爬取好并返回给引擎以后,引擎会把item交给City58Pipeline这个管道处理。这个pipeline文件负责打开关闭文件,并写入文件

Scrapy1.4抓取58同城之翻页and详情页详解(二)_第4张图片

middleware.py:随机选取User-Agent,并把它赋值给传入进来的request

Scrapy1.4抓取58同城之翻页and详情页详解(二)_第5张图片

settings.py:开启City58Pipeline管道,middliwares下载中间件与robots协议

main.py:运行爬虫

各文件详情:

参考上篇文章

现主要讲解middleware.py中间件:

Scrapy框架中的中间件主要分两类:蜘蛛中间件下载中间件。其中最重要的是下载中间件,反爬策略都是部署在下载中间件中的

我们在这加入各大搜索引擎的UA,使我们的爬虫更接近于人的操作

爬虫神器——各大搜索引擎的User-Agent:

Chrome浏览器:‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36’,

百度爬虫:‘Mozilla/5.0 (compatible; Baiduspider/2.0; - +http://www.baidu.com/search/spider.html)’,

IE9浏览器:‘Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)’,

谷歌爬虫:‘Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)’,

必应爬虫:‘Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)’,

总结:

当你用过几次scrapy框架,发现很多文件都是套路化的,例如:58爬虫中,除City_58_test.py需大幅度修改,其他文件都可套用与其他爬虫

58的网页结构不适合用xpath,所以我们用pyquery,更方便简洁

有不清楚的地方,大家可以留言,点赞,我看到了,会第一时间回复你

本系列文章同步跟新于微信公众号:工科男雷先生。知乎:雷之

你可能感兴趣的:(Scrapy1.4抓取58同城之翻页and详情页详解(二))