scrapy增加代理IP功能的示例及说明

[scrapy] 2024-04-28 圈点397

摘要:scrapy增加代理IP功能的示例及说明,HttpProxyMiddleware发现结果并不如意,还是被墙;

crapy增加代理的示例,代理可分为需要帐号密码和不需要的情况:示例如下,


1,在middleware.py中增加代理的类:

import base64

class ProxyMiddleware(object):

         #上句中必须是object,不能是其它(如HttpProxyMiddleware)

# 重写 request

def process_request(self, request, spider):

# 设置代理IP和端口 proxy

request.meta['proxy'] = "http://YOUR_PROXY_IP:PORT"

# 如果需要帐号和密码,需要以下的内容,没有帐号和密码就忽略如下所有内容

proxy_user_pass = "USERNAME:PASSWORD"

# setup basic authentication for the proxy

encoded_user_pass = base64.encodestring(proxy_user_pass)

request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass

  

2,修改setting的内容。

DOWNLOADER_MIDDLEWARES = {

'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,

'project_name.middlewares.ProxyMiddleware': 100,

}



经测试发现有情况,

在上例的示例中,如果如下编辑引用:

from scrapy.downloadermiddlewares.httpproxy import HttpProxyMiddleware

class ProxyMiddleware(HttpProxyMiddleware):

在设置中,就不要引用如下的内容了:

实测中是错误的。同时发现结果并不如意,还是被墙;IP没变。



scrapy  代理  

感谢反馈,已提交成功,审核后即会显示