Scrapy爬虫设置代理ip

869次阅读
没有评论
Scrapy爬虫设置代理ip

在应用爬虫的时候我们经常会遇到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'] = 'Basic' + b64_user_password.decode('utf-8')

以上所有的代码都在middlewares.py中应用,然后在settings.py里面调用相应的类就可以了。

三、scrapy代码:

import scrapy import json

class IpSpiderSpider(scrapy.Spider): name = 'ip_spider' allowed_domains = ['http_bin.org'] start_urls = ['http://http_bin.org/ip']

def parse(self, response): origin = json.loads(response.text)['origin'] print('=='*20) print(origin) print('=='*20) yield scrapy.Request(self.start_urls[0],dont_filter=True)

然后启动scrapy就可以了,打印出的结果就是已经更改的ip

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-25发表,共计1230字。
新手QQ群:570568346,欢迎进群讨论 Python51学习