在应用爬虫的时候我们经常会遇到ip被封的情况,这样我们想要的数据就不能及时下载下来,那么怎么办呢?当然是使用代理ip了,下面来看看scrapy中怎么使用代理ip。
一、开放代理
import random
class IpProxyDownloadMiddleware(object):
'''
定义代理ip的类,这是开放代理的应用
'''
PROXIES = [
'182.111.64.8:53364'
]
def process_request(self, request, spider):
proxy = random.choice(self.PROXIES)
request.meta['proxy'] = proxy
二、使用独享代理
import base64
class IpProxyDownloadMiddleware(object):
'''
独享代理ip的应用方法,需要解码
'''
def process_request(self, request, spider):
proxy = 'ip:端口'
user_password = '用户名:密码'
request.meta['proxy'] = proxy
b64_user_password = base64.b64encode(user_password.encode('utf-8'))
request.headers['Proxy-Authorization'] = &