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的web框架编写前端模版的教程
Apr 30 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python循环语句中else的用法总结
Sep 11 Python
python之django母板页面的使用
Jul 03 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
详解python中list的使用
Mar 15 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
opencv 阈值分割的具体使用
Jul 08 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php以post形式发送xml的方法
2014/11/04 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
使用python实现生成用户信息
2017/03/20 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python OpenCV实现视频分帧
2019/06/01 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
总经理职责范文
2013/11/08 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
岗位说明书怎么写
2014/07/30 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
办公室禁烟通知
2015/04/23 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS