爬虫代理Scrapy框架详细介绍3

本文详细介绍了Scrapy防止反爬的多种策略,包括动态设置User-Agent、禁用或启用Cookies、设置延迟下载、使用Google/Baidu Cache、伪造Referer、使用IP地址池以及如何使用Scrapy的下载中间件实现代理IP和User-Agent的切换。同时,提供了自定义下载中间件的代码示例,以及USER_AGENTS和PROXIES的设置方法。
摘要由CSDN通过智能技术生成

Scrapy防止反爬
在这里插入图片描述
通常防止爬虫被反主要有以下几个策略:
• 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息,可以使用组件scrapy-random-useragent)
• 禁用Cookies(对于简单网站可以不启用cookies middleware,不向Server发送cookies,有些网站通过cookie的使用发现爬虫行为)可以通过COOKIES_ENABLED 控制 CookiesMiddleware 开启或关闭
• 启用Cookies(对于复杂网站,需要使用无头浏览器scrapy-splash获取js生成的复杂cookies
• 设置延迟下载(防止访问过于频繁,设置为 2秒 或更高)
• Google Cache 和 Baidu Cache:如果可能的话,使用谷歌/百度等搜索引擎服务器页面缓存获取页面数据。
• Referer 使用假的来源,比如百度带关键词的链接
• 使用IP地址池:现在大部分网站都是根据IP来ban的,可以通过亿牛云海量定制代理理池突破
• 使用 亿牛云爬虫代理组件代码。
#! -- encoding:utf-8 --
import base64
import sys
import random
PY3 = sys.version_info[0] >= 3
def base64ify(bytes_or_str):
if PY3 and isinstance(bytes_or_str, str):
input_bytes = bytes_or_str.encode(‘utf8’)
else:
input_bytes = bytes_or_str
output_bytes = base64.urlsafe_b64encode(input_bytes)
if PY3:
return output_bytes.decode(‘ascii’)
else:
return output_bytes
class ProxyMiddleware(object):
def process_request(self, request, spider):
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = “t.16yun.cn”
proxyPort = “31111”
# 代理隧道验证信息
proxyUser = “username”
proxyPass = “password”
request.meta[‘proxy’] = “http://{0}:{1}”.format(proxyHost,proxyPort)
# 添加验证头
enc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值