scrapy如何使用代理ip采集?

采集时经常遇到被封IP的事儿,自己付费买了包月的代理IP(API),如何在scrapy里面使用代理IP采集呢

阅读 3.3k
1 个回答

我也正在学scrapy,题主遇到的问题我正好经历过。

图片描述

熟悉框架图,可以看到每个request请求都经过DownloaderMiddlewares,然后才到下载器,例如自带的添加header、timeout等都是在DownloaderMiddlewares里面编写组件启用实现的。

基本思路:

  • 编写middlewares.py中,编写自定义组件例如ProxyMiddleware,目的在于为每个request设置代理。
  • 每个request经过ProxyMiddleware时候,在这里面编写你处理方法[调用API获取可用IP、添加代理]
  • 启用组件。

参看文档:官方DownloaderMiddlewares教程

我之前也用过付费的包月IP,免费和付费区别主要在于稳定性,想了一下其实可以自己动手写一个抓取免费IP的库,然后再组件里面调用,基本想法就是抓取几个免费的IP站点,然后验证,得到多个短时间可用的IP列表,这样一定程度上节省购买付费代理IP的成本,囧。

自动抓取免费IP的库

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进