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程序语言快速上手教程
Jul 18 Python
跟老齐学Python之使用Python操作数据库(1)
Nov 25 Python
python处理二进制数据的方法
Jun 03 Python
Python实现感知机(PLA)算法
Dec 20 Python
python基础梳理(一)(推荐)
Apr 06 Python
python视频按帧截取图片工具
Jul 23 Python
python批量修改ssh密码的实现
Aug 08 Python
浅谈pycharm使用及设置方法
Sep 09 Python
Python实现ATM系统
Feb 17 Python
Python 实现使用空值进行赋值 None
Mar 12 Python
python 模块导入问题汇总
Feb 01 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
angular动态表单制作
2018/02/23 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python下的subprocess模块的入门指引
2015/04/16 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
python opencv摄像头的简单应用
2019/06/06 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python中rc1什么意思
2020/06/19 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
合作协议书
2014/04/23 职场文书
英语系本科生求职信
2014/07/15 职场文书
工会工作先进事迹
2014/08/18 职场文书
放飞理想演讲稿
2014/09/09 职场文书
党的生日演讲稿
2014/09/10 职场文书
成绩单家长意见
2015/06/03 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis
Linux安装apache服务器的配置过程
2021/11/27 Servers