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操作CouchDB的方法
Oct 08 Python
Python创建系统目录的方法
Mar 11 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
python基于物品协同过滤算法实现代码
May 31 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
python3的pip路径在哪
Jun 23 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
Python filter()及reduce()函数使用方法解析
Sep 05 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
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
laravel model 两表联查示例
2019/10/24 PHP
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python中必要的名词解释
2019/11/20 Python
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
视图的作用
2014/12/19 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
外贸专业求职信
2014/03/09 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
服务承诺书格式
2014/05/21 职场文书
反邪教标语
2014/06/23 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电