Python使用scrapy采集数据时为每个请求随机分配user-agent的方法


Posted in Python onApril 08, 2015

本文实例讲述了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法。分享给大家供大家参考。具体分析如下:

通过这个方法可以每次请求更换不同的user-agent,防止网站根据user-agent屏蔽scrapy的蜘蛛

首先将下面的代码添加到settings.py文件,替换默认的user-agent处理模块

DOWNLOADER_MIDDLEWARES = {

    'scraper.random_user_agent.RandomUserAgentMiddleware': 400,

      'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,

}

自定义useragent处理模块
from scraper.settings import USER_AGENT_LIST

import random

from scrapy import log

class RandomUserAgentMiddleware(object):

    def process_request(self, request, spider):

        ua  = random.choice(USER_AGENT_LIST)

        if ua:

            request.headers.setdefault('User-Agent', ua)

        #log.msg('>>>> UA %s'%request.headers)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
优化Python代码使其加快作用域内的查找
Mar 30 Python
Python字符串替换实例分析
May 11 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
python生成词云的实现方法(推荐)
Jun 13 Python
详解Python中for循环是如何工作的
Jun 30 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
python中Genarator函数用法分析
Apr 08 #Python
探索Python3.4中新引入的asyncio模块
Apr 08 #Python
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 #Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 #Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 #Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 #Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 #Python
You might like
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
jquery编写日期选择器
2017/03/16 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Django框架实现的分页demo示例
2019/05/25 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
大整数数相乘的问题
2012/07/22 面试题
天网面试题
2013/04/07 面试题
英语专业学生个人求职信范文
2014/01/06 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
学生会招新策划书
2014/02/14 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
小学生作文评语大全
2014/04/21 职场文书
结婚老公保证书
2015/02/26 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS