Pyhon爬虫Scrapy设置IP代理

在非设置代理的环境下,持续访问服务器,会被服务器判断为是一个爬虫,那么服务器维护人员就会禁止我们的IP访问,导致我们爬虫失效,代理IP就是为了防止该问题,如下整理的Scrapy爬虫框架中如何配置IP代理。

Pyhon爬虫Scrapy设置IP代理

在非设置代理的环境下,持续访问服务器,会被服务器判断为是一个爬虫,那么服务器维护人员就会禁止我们的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
上一篇:Win10中安装配置MongoDB 下一篇:Yii2将当前请求执行的sql记录到日志中

评论

评论(0)

暂无评论