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利用OpenCV2实现人脸检测
Apr 16 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
基于python指定包的安装路径方法
Oct 27 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Python实现数据的序列化操作详解
Jul 07 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
类的另类用法--数据的封装
2006/10/09 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
几种tab切换详解
2017/02/03 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
django实现模型字段动态choice的操作
2020/04/01 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
医学毕业生自荐信
2013/10/11 职场文书
中专毕业生自荐信
2013/11/16 职场文书
校园安全教育广播稿
2014/02/17 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
毕业生实习证明
2014/09/19 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
2014年食堂工作总结
2014/11/20 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
Python实现智慧校园自动评教全新版
2021/06/18 Python
Python 数据可视化之Matplotlib详解
2021/11/02 Python