scrapy框架使用代理ip的基本思路是修改请求对象中的meta['proxy']的值,将代理ip赋值给这个属性。遵循这个思路,只要是生成Request对象的地方都可以设置Request的值。

  downloader中间件

  spider中间件

  spider内部对象定义的内部parse函数和parse_start_url()等

其中最方便的是在downloadermiddleware中使用

只要在request中加入下面的设置就可以实现代理ip访问资源,当然前提是这个代理ip可用以及满足可以使用协议:

  request.meta['proxy'] = 'http://%s:%d'%('110.73.10.242', 8123)

至于其它像读取ip、ip调用顺序的逻辑就直接在生成请求的地方进行设置即可。

相关的内容:使用通用库进行网络爬取的方式

 import urllib2
import urllib
import requests
url = 'http://baiduc.com/'
req = urllib2.Request(url=url)
req.set_proxy('12.24.23.111',9000)
response = urllib.urlopen(req, timeout=30)
print(response.msg)

都是通过在请求上设置代理来达到目的。

04-28 11:25