python3 Scrapy爬虫框架ip代理配置的方法


Posted in Python onJanuary 17, 2020

什么是Scrapy?

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。

一、背景

     在做爬虫项目的过程中遇到ip代理的问题,网上搜了一些,要么是用阿里云的ip代理,要么是搜一些网上现有的ip资源,然后配置在setting文件中。这两个方法都存在一些问题。

1、阿里云ip代理方法,网上大都是配置阿里云的ip代理的用户名、密码然后加密、解密。我按照上面的方面操作,发现阿里云上面的ip代理的参数里面没有用户名、密码相关的参数配置了。

python3 Scrapy爬虫框架ip代理配置的方法

2、至于网上查到的另外一种方法是在setting文件里面添加代理IP资源池,然后再在middlewares.py文件里面添加上一些代码来实现,但代理ip不一定是可用的。

二、改进方法

1、基于背景中提到的网上两种方法的局限性,我在此综合了两种方法。

2、改进方法:

1)利用阿里云的ip代理API生成50个代理IP资源池(用自己的阿里云账号登陆生成的,ip有效性得到保障)

2)直接在middlewares.py中添加如下函数,PROXIES为在阿里云上面生成的ip,此处涉及到个人隐私,故用****代替。

class my_proxy(object):
  def process_request(self, request, spider):
    PROXIES = ['http://****.****.****.****:8080']
    ip = random.choice(PROXIES)
    request.meta['Proxy-Authorization'] = ip

注意:request.meta的方括号里面的关键字需要写对,不然无法正常运行。

总结

以上所述是小编给大家介绍的python3 Scrapy爬虫框架ip代理配置的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中使用中文的方法
Feb 19 Python
python读写ini文件示例(python读写文件)
Mar 25 Python
python自动安装pip
Apr 24 Python
Python写入CSV文件的方法
Jul 08 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
opencv python 傅里叶变换的使用
Jul 21 Python
浅谈Django的缓存机制
Aug 23 Python
python读取word文档,插入mysql数据库的示例代码
Nov 07 Python
Python函数返回不定数量的值方法
Jan 22 Python
Python是怎样处理json模块的
Jul 16 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
Python计算机视觉里的IOU计算实例
Jan 17 #Python
python实现百度OCR图片识别过程解析
Jan 17 #Python
Python实现图像的垂直投影示例
Jan 17 #Python
基于python实现语音录入识别代码实例
Jan 17 #Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 #Python
python实现高斯投影正反算方式
Jan 17 #Python
python中图像通道分离与合并实例
Jan 17 #Python
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
php创建session的方法实例详解
2015/01/27 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
JavaScript去除空格的几种方法
2006/10/03 Javascript
jQuery 动画基础教程
2008/12/25 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
python基于Selenium的web自动化框架
2019/07/14 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
大学生预备党员自我评价分享
2013/11/16 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
小王子读书笔记
2015/06/29 职场文书
2016教师节问候语
2015/11/10 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Redis中一个String类型引发的惨案
2021/07/25 Redis