您的位置:首页 > 其它

scrapy抓取豆瓣数据(2)

2015-10-08 20:18 330 查看


在scrapy中怎么让Spider自动去抓取豆瓣小组页面

1,引入Scrapy中的另一个预定义的蜘蛛CrawlSpider

?
2, 基于CrawSpider定义一个新的类GroupSpider,并添加相应的爬行规则。

?
start_urls预定义了豆瓣有所小组分类页面,蜘蛛会从这些页面出发去找小组。

rules定义是CrawlSpider中最重要的一环,可以理解为:当蜘蛛看到某种类型的网页,如何去进行处理。

例如,如下规则会处理URL以/group/XXXX/为后缀的网页,调用parse_group_home_page为处理函数,并且会在request发送前调用add_cookie来附加cookie信息。

?
又如,如下规则会抓取网页内容,并自动抓取网页中链接供下一步抓取,但不会处理网页的其他内容。

?




如何添加Cookie

定义如下函数,并如前面所讲在Rule定义里添加process_request=add_cookie。

?
一般网站在client端都用cookie来保存用户的session信息,添加cookie信息就可以模拟登陆用户来抓取数据。




如何防止蜘蛛被网站Ban掉

首先可以尝试添加登陆用户的cookie去抓取网页,即使你抓取的是公开网页,添加cookie有可能会防止蜘蛛在应用程序层被禁。这个我没有实际验证过,但肯定没有坏处。

其次,即使你是授权用户,如果你的访问过于频繁,你的IP会可能被ban,所以一般你需要让蜘蛛在访问网址中间休息1~2秒。

还有就是配置User Agent,尽量轮换使用不同的UserAgent去抓取网页

在Scrapy项目的settings.py钟,添加如下设置:

?
================

到此位置,抓取豆瓣小组页面的蜘蛛就完成了。接下来,可以按照这种模式定义抓取小组讨论页面数据的Spider,然后就放手让蜘蛛去爬行吧!Have Fun!

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  豆瓣 数据