
在非设置代理的环境下,持续访问服务器,会被服务器判断为是一个爬虫,那么服务器维护人员就会禁止我们的IP访问,导致我们爬虫失效,代理IP就是为了防止该问题,如下整理的Scrapy爬虫框架中如何配置IP代理。
1、配置IP地址代理池
在setting配置文件中新增IP代理池
IP_PROXY_POOL=[
{"addr":"web-proxy.tencent.com:8080"},
{"addr":"219.228.126.86:8123"},
{"addr":"61.152.81.193:9100"},
]2、在中间件文件新增代理中间件
在``middlewares.py中新增HttpProxyMiddleware
from study.settings import IP_PROXY_POOL
import random
class HttpProxyMiddleware(object):
def process_request(self, request, spider):
cur_ip=random.choice(IP_PROXY_POOL)
print("this is ip:"+cur_ip["addr"])
request.meta["proxy"]="http://"+cur_ip["addr"]3、启用中间件
修改setting中的DOWNLOADER_MIDDLEWARES
DOWNLOADER_MIDDLEWARES = {
'study.middlewares.HttpProxyMiddleware':543
}4、使用效果
输出的log中可以看到效果
2019-10-23 11:14:46 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
this is ip:web-proxy.tencent.com:8080
2019-10-23 11:14:47 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://quotes.toscrape.com/robots.txt> (referer: None)
this is ip:web-proxy.tencent.com:8080评论
暂无评论
评论(0)