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开发windows GUI程序入门实例
Oct 23 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
python正则表达式面试题解答
Apr 28 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python实现操作文件(文件夹)
Oct 31 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 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将数据导入到Foxmail
2006/10/09 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php生成rss类用法实例
2015/04/14 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
python dlib人脸识别代码实例
2019/04/04 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
2014年仓库管理员工作总结
2014/11/18 职场文书
安全保证书怎么写
2015/02/28 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书