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使用自定义user-agent抓取网页的方法
Apr 15 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
Django的CVB实例详解
Feb 10 Python
Django设置Postgresql的操作
May 14 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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中mkdir()函数的权限问题分析
2016/09/24 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
14款NodeJS Web框架推荐
2014/07/11 NodeJs
jQuery数据缓存用法分析
2015/02/20 Javascript
js比较日期大小的方法
2015/05/12 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
js实现自定义路由
2017/02/04 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python之列表实现栈的工作功能
2019/01/28 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python 5个顶级异步框架推荐
2020/09/09 Python
animation和transition的区别
2020/10/12 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
this关键字的作用
2016/01/30 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
舞蹈毕业生的自我评价
2014/03/05 职场文书
《海底世界》教学反思
2014/04/16 职场文书
保护环境倡议书300字
2014/05/19 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
给老师的一封感谢信
2015/01/20 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2015年市场营销工作总结
2015/07/23 职场文书