应用scrapy爬虫的时候,经常遇到ip被封的问题,直接导致无法获取数据,所以要使用代理ip。

在网上有很多大神写的案例,我选择了一个进行使用,不知道是ip的原因还是我写的有问题,还是会报错,但是思路总是有的,先记下来再熟悉一遍慢慢就会了。

首先第一步是在settings文件里设置好proxy_list

PROXIES_LIST = {'http://112.85.168.96:9999','http://1.197.203.234:9999','http://120.83.106.228:9999''https://223.241.78.23:808','https://112.85.171.126:9999']

第二步是在下载器中间件中加入代理IP,在把中间的类名加入setting中。

什么是下载器中间件。

参考scrapy官方文档可以看到。

下载器中间件是 Scrapy 请求/响应处理的钩子框架。这是一个轻量级的低级系统,用于全局更改 Scrapy 的请求和响应。

也就是说,下载器中间件可以全局修改Scrapy request和response,那就可以在这里设置代理ip来请求网页。

下载器中间件在middlewares文件里.

在middlewares文件里设置process_request类和 import PROXIES_LIST

from douban.settings import PROXIES_LIST
import randomclass process_request(object):def process_request(self, request, spider):request.meta['proxy'] = random.choice(PROXIES_LIST)

在settings文件里开启 donwloader_middlewares 中间件:

DOWNLOADER_MIDDLEWARES = {# 'douban.middlewares.DoubanDownloaderMiddleware': 543,'douban.middlewares.process_request': 541}

这只是一个简单的思路,怕自己忘了,还要不断重复尝试。

哦对了,我用的代理网站是:高匿ip非国外免费代理服务器提供,非国外免费ip代理服务器地址列表 - 第1页 - 西拉免费代理IP

Python scrapy设置代理ip相关推荐

  1. python爬虫设置代理ip池

    在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,那如何解决呢?使用代 ...

  2. python爬虫设置代理ip池——方法(一)

    """ 在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...

  3. python爬虫浏览器伪装和设置代理ip

    1.python爬虫浏览器伪装 #导入urllib.request模块 import urllib.request#设置请求头 headers=("User-Agent",&quo ...

  4. python爬虫使用代理ip_python爬虫如何设置代理ip

    python爬虫设置代理ip的方法:首先写入获取到的ip地址到proxy:然后用百度检测ip代理是否成功,并请求网页传的参数:最后发送get请求,并获取返回页面保存到本地. [相关学习推荐:pytho ...

  5. python—简单数据抓取七(采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用,利用ip池访问网页并将scrapy爬取转移到items的数据存入到数据库)

    学习目标: Python学习二十七-简单数据抓取七 学习内容: 1.采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用 2.利用ip池访问网页并将scrapy爬取转移到it ...

  6. python设置电脑ip代理_设置代理IP在Python中使用

    在Pyhton中要怎么使用代理IP?我们经常说代理IP能够让Python更好的发挥爬虫效果,首先我们要懂得如何在python语言中设置代理IP来利用. 1.urllib模块设置代理 如果我们频繁用一个 ...

  7. 干货|Python爬虫如何设置代理IP

    在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败.高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,这里讲述 ...

  8. python进行爬虫设置代理ip之后不知道是否已经启用代理ip

    设置代理ip: 根据每个代理平台的格式不同,代理设置的方式也不尽一致,这里进行演示芝麻代理的配置: def ip_get():url = '形成的代理的链接'ip_list_con = request ...

  9. python3 selenium模块Chrome设置代理ip的实现

    python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...

最新文章

  1. html 实现动态在线预览word、excel、pdf等文件
  2. 【jquery】一款不错的音频播放器——Amazing Audio Player
  3. Interview:算法岗位面试—10.16下午—上海某公司算法岗位(偏图像算法,国内顶端医疗行业)技术面试之一点技术都没问
  4. thinkphp长连接MySQL_ThinkPHP3.2.3---mysql+ajax实现长连接,实时监测数据库数据是否更新...
  5. Qt C++属性类型提供给 QML调用(五)
  6. 台湾印象之一:金马奖之夜
  7. (转)模拟鼠标/键盘
  8. Java Date toString()方法与示例
  9. 利用cors,实现js跨域访问Tomcat下资源
  10. 设计素材PSD分层模板|美食类海报设计技法
  11. laradock 进入 工作区
  12. 中兴的自毁与自救:封杀7年、禁用 Android,76岁创始人奔走前线!
  13. 中九天线调节经验总结
  14. java webservice 数组参数_LiveBOS Webservice传参类型为list数组
  15. scrapy爬虫命令
  16. C++学习系列(二)—— 核心编程(面向对象)
  17. 添加蒙版,分分钟搞定PPT封面
  18. 苹果MacBook Pro usb连接iPhone反复重连解决方法
  19. 微分销有哪些正确的推广方式?
  20. 虚拟主机好还是云服务器,虚拟主机好还是云服务器

热门文章

  1. [Realtek sdk-4.4.1]编译RTL8198D出现dos2unix: Command not found
  2. 简易理解设计模式之:桥接模式——穿衣服经典案例2
  3. SHFileOperation()函数移动,复制,删除文件\文件夹
  4. 走进四川电信 揭秘核心计费系统改造的背后
  5. c语言注册登录程序字符串,C语言实现注册
  6. 把效能带到游戏里!仙峰红海蜕变突破之路
  7. 软技能:代码之外的生存指南读书笔记
  8. 异常检测——高维数据异常检测
  9. 详解Python中的itertools模块
  10. Sql语句之IFNULL() 函数