您的位置:首页 > 编程语言 > Python开发

第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制

2017-08-24 14:10 1061 查看
第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制

[b]cookie禁用[/b]

[b]就是在[b]Scrapy的配置文件settings.py里禁用掉[b][b]cookie禁用,可以防止被通过[b][b]cookie禁用识别到是爬虫,注意,只适用于不需要登录的网页,[b][b]cookie禁用后是无法登录的[/b][/b][/b][/b][/b][/b][/b][/b]

settings.py里禁用掉cookie禁用

COOKIES_ENABLED = False 禁用cookie

# Disable cookies (enabled by default)
COOKIES_ENABLED = False


自动限速

[b]Scrapy默认没有限速的,只要遇到URL就访问,没有间隙[/b]

[b]自动限速(AutoThrottle)扩展[/b]

[b][b][b][b]settings.py里设置[/b][/b][/b][/b]

[b]DOWNLOAD_DELAY = 下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度, 减轻服务器压力。同时也支持小数(单位秒)[/b]

# Configure a delay for requests for the same website (default: 0)
# See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs
DOWNLOAD_DELAY = 10


AUTOTHROTTLE_ENABLED = True 开启限速,[b]启用AutoThrottle扩展[/b]

# Enable and configure the AutoThrottle extension (disabled by default)
# See http://doc.scrapy.org/en/latest/topics/autothrottle.html AUTOTHROTTLE_ENABLED = True


[b][b]自定义spider的settings,也就是为每一个爬虫单独设置配置文件里的值,将覆盖掉[b][b][b][b][b]settings.py里的相同设置[/b][/b][/b][/b][/b][/b][/b]

custom_settings = {键值对} 为每一个爬虫单独设置配置文件里的值,将覆盖掉settings.py里的相同设置,在爬虫文件里设置

举例:

# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request,FormRequest

class PachSpider(scrapy.Spider):                            #定义爬虫类,必须继承scrapy.Spider
name = 'pach'                                           #设置爬虫名称
allowed_domains = ['www.kuaidaili.com']                 #爬取域名

custom_settings = {
"COOKIES_ENABLED": True                             #覆盖掉settings.py里的相同设置,开启COOKIES
}

def start_requests(self):    #起始url函数,会替换start_urls
"""第一次请求一下登录页面,设置开启cookie使其得到cookie,设置回调函数"""
return [Request(
url='http://www.kuaidaili.com/free/inha/2/',
meta={'cookiejar':1},       #开启Cookies记录,将Cookies传给回调函数
callback=self.parse
)]

def parse(self, response):
title = response.xpath('//*[@id="list"]/table/tbody/tr')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐