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内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
python实现给字典添加条目的方法
Sep 25 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
python 自定义对象的打印方法
Jan 12 Python
关于python多重赋值的小问题
Apr 17 Python
QML使用Python的函数过程解析
Sep 26 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
Python configparser模块配置文件过程解析
Mar 03 Python
python操作链表的示例代码
Sep 27 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
如何在vscode中安装python库的方法步骤
Jan 06 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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
javascript中常用编程知识
2013/04/08 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Python查看多台服务器进程的脚本分享
2014/06/11 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python使用MONGODB入门实例
2015/05/11 Python
python二分查找算法的递归实现方法
2016/05/12 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
详解python的super()的作用和原理
2020/10/29 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
拾金不昧的表扬信
2014/01/16 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
暑假安全保证书
2015/02/28 职场文书
纪录片信仰观后感
2015/06/08 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
运动会报道稿大全
2015/07/23 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书