scrapy中设置随机代理

原创 2018年04月15日 09:18:46

    使用fake_useragent来进行伪代理,安装:pip install fake_useragent

    首先在middleware.py中写一个随机更换user-agent的class

from fake_useragent import UserAgent
class RandomUserAgentMiddleware(object):
    # 随机更换useragent
    def __init__(self, crawler):
        super(RandomUserAgentMiddleware, self).__init__()
        self.ua = UserAgent()
        #self.ua_type = crawler.settings.get("RANDOM_UA_TYPE", "random")

    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler)

    def process_request(self, request, spider):

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

ua = Useragent()ua.ieua.chromeua.random #会随机生成一个浏览器的user-agent

为了让user-agent可配置,可在setting文件中增加一行配置:

RANDOM_UA-TYPE = ''rando”

class RandomUserAgentMiddleware(object):
    # 随机更换useragent
    def __init__(self, crawler):
        super(RandomUserAgentMiddleware, self).__init__()
        self.ua = UserAgent()
        self.ua_type = crawler.settings.get("RANDOM_UA_TYPE", "random")

    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler)

    def process_request(self, request, spider):
        def get_ua():   # 闭包,用于获取ua_type
            return getattr(self.ua, self.ua_type)
        request.headers.setdefault('User-Agent', get_ua())




python爬虫之Scrapy 使用代理配置

http://www.pythontab.com/html/2014/pythonweb_0326/724.html 在爬取网站内容的时候,最常遇到的问题是:网站对IP有限制,会有防抓取功能...
  • QZC295919009
  • QZC295919009
  • 2015年01月15日 18:11
  • 1637

scrapy代理的设置

scrapy代理的设置 在我的上一篇文章介绍了scrapy下载器中间件的使用,这里的scrapyIP的代理就是用这个原理实现的,重写了下载器中间件的process_request(self,req...
  • qq_34162294
  • qq_34162294
  • 2017年05月16日 21:23
  • 3351

Scrapy的Ip代理的配置(未完成)

1、编写代理中间件 这是最直接的方式,也是能够比较快速实现的。前提是你需要拥有可用的代理ip。网上有一些免费的代理ip资源可以使用,但是往往都不稳定。如果有条件可以买一些IP代理来使用。 代理中间件...
  • ly1046906153
  • ly1046906153
  • 2015年07月08日 21:04
  • 6356

scrapy设置代理proxy

http://stackoverflow.com/questions/4710483/scrapy-and-proxies 增加文件middlewares.py放置在setting.py平行...
  • haipengdai
  • haipengdai
  • 2016年03月24日 16:50
  • 10996

scrapy爬虫添加用户代理

scrapy框架添加代理IP
  • alicelmx
  • alicelmx
  • 2018年01月01日 22:21
  • 210

第1.7章 scrapy之ip代理的使用

1 代理中间件 代码核心在于随机选择一条代理的ip和port,至于代理ip和port的来源,可以是购买的ip代理,也可以从网上爬取的。# -*- coding: utf-8 -*- ''' Crea...
  • warrah
  • warrah
  • 2017年06月21日 14:19
  • 1256

反反爬虫------设置scrapy随机user_agents

在我们使用爬虫的时候,总会遇到一些网站规则,限制我们去爬取,其中一个就行限制浏览器请求头 我们可以设置一个user_agent的列表,然后随机抽取其中的一个作为浏览器请求头,这样每次访问网站就可以使...
  • LCYong_
  • LCYong_
  • 2017年06月03日 21:09
  • 1497

scrapy代理的配置方法

根据最新的scrapy官方文档,scrapy爬虫框架的代理配置有以下两种方法:一.使用中间件DownloaderMiddleware进行配置使用Scrapy默认方法scrapy startprojec...
  • Jutal_ljt
  • Jutal_ljt
  • 2017年01月15日 11:28
  • 4171

Scrapy 通过代理(Proxy)爬取外部网站

Scrapy 通过代理(Proxy)爬取外部网站通常我们不需要特殊处理就能直接的访问WWW。但当你处于内部网络通过代理访问外部的时候,或者一些特殊的情况下,你会需要这个技能。默认你已经会用Scrapy...
  • lj0425
  • lj0425
  • 2017年12月20日 13:58
  • 681

Scrapy增加随机请求头user_agent

一般为了避免服务器反爬虫,当我们发出request时,需要增加一些随机的请求头信息(header),然后就可以轻松的绕过服务器的反侦察手段了。 因此一般只要在middlewares.py文件中新增加...
  • robinson_911
  • robinson_911
  • 2017年10月08日 23:21
  • 293
收藏助手
不良信息举报
您举报文章:scrapy中设置随机代理
举报原因:
原因补充:

(最多只允许输入30个字)