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 相关文章推荐
python3获取当前文件的上一级目录实例
Apr 26 Python
Win8下python3.5.1安装教程
Jul 29 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
Python地图绘制实操详解
Mar 04 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
使用Python实现跳帧截取视频帧
May 31 Python
Python占用的内存优化教程
Jul 28 Python
python关于调用函数外的变量实例
Dec 26 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
怎么解决pycharm license Acti的方法
Oct 28 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
第九节 绑定 [9]
2006/10/09 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
js尾调用优化的实现
2019/05/23 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
工程建设实施方案
2014/03/14 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2014年教研工作总结
2014/12/06 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
父亲去世追悼词
2015/06/23 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python