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中执行shell命令的几个方法小结
Sep 18 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python支持多线程的爬虫实例
Dec 21 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
python批量解压zip文件的方法
2019/08/20 Python
在pycharm中实现删除bookmark
2020/02/14 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
公司庆典活动邀请函
2014/01/09 职场文书
售后服务承诺书范文
2014/03/26 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技