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实现计算资源图标crc值的方法
Oct 05 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python PyTorch预训练示例
Feb 11 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
使用Python将语音转换为文本的方法
Aug 10 Python
python 解决函数返回return的问题
Dec 05 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 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
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP运行模式汇总
2016/11/06 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
react 组件传值的三种方法
2019/06/03 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python全局变量操作详解
2015/04/14 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
个人自我鉴定怎么写
2013/10/28 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电