Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spider的时候, 所以说下载中间件是结余Scrapy的request/response处理的钩子, 用于修改Scrapy request和response.
编写自己的下载器中间件 :
编写下载器中间件, 需要定义下一或者多个方法的python类
新建一个关于爬取httpbin.org网站的项目
scrapy startproject httpbintest cd httpbintest scrapy genspider example example.com
写一个简单的代理中间件实现ip伪装
创建好爬虫之后将httpbin.py中的parse方法改成:
def parse(self, response): print(response.text)
然后命令行启动爬虫: scrapy crawl httpbin
在下面看到"origin": "114.250.88.66"
在查看自己的ip
编写中间件实现ip伪装, 在middleares.py中:
class ProxyMiddleare(object): logger = logging.getLogger(__name__) def process_request(self,request, spider): self.logger.debug("Using Proxy") request.meta[‘proxy‘] = ‘http://127.0.0.1:9743‘ return None
然后再settings.py中配置文件开启下载中间件的功能, 默认是关闭的
重启爬虫
在日志中可以看到定义的中间件已经移动,而且查看origin的ip地址也已经变成了日本的ip地址
原文地址:https://www.cnblogs.com/dong-/p/10311114.html
时间: 2024-10-18 21:03:27