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机器学习案例教程——K最近邻算法的实现
Dec 28 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
深入理解Python爬虫代理池服务
Feb 28 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
Python之matplotlib绘制折线图
Apr 13 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 中的类
2006/10/09 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP实现的简单组词算法示例
2018/04/10 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
非常好的js代码
2006/06/27 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
班组安全员工作职责
2014/02/01 职场文书
物流创业计划书
2014/02/01 职场文书
初三学生个人自我评定
2014/04/06 职场文书
安徽导游词
2015/02/12 职场文书
公司管理建议书
2015/09/14 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers