美文网首页
python爬虫之如何随机更换User-Agent 关于C

python爬虫之如何随机更换User-Agent 关于C

作者: 朝畫夕拾 | 来源:发表于2019-03-16 13:12 被阅读0次

    python爬虫爬取网站内容时,如果什么也没带,即不带报头headers,往往会被网站管理维护人员认定为机器爬虫。因为,此时python默认的user-agent如Python-urllib/2.1一样。因此,网站管理人员会根据请求的user-agent判定你是不是机器爬虫。所以,此时往往就需要伪装user-agent,模拟成真实的浏览器去取出内容。

    一般主要应用Chrome或者Firefox,爬虫应用的时候,可以把他们都放到列表里面。然后import random,使用random.choice(list)随机获取一个user-agent。

    不过呢,现在我要介绍一个python里面更为牛逼的方法(嘘,一般人我不告诉他)——fake-useragent

    这是python里面的一个useragent池,非常好用!具体怎么用呢?

    首先,安装fake-useragent

        pip  install  fake-useragent

    然后,使用方法:

    from  fake_useragent   import  UserAgent

    ua = UserAgent()

    headers = {'User-Agent':ua.random}

    注意,有些网站可能会根据user-agent来封IP,也就是说他们会根据同一个IP下,如果是很多个不同user-agent在访问,那么,此时,他们就会判定为爬虫! 

    错误类型

    在爬虫中报如下的错误:

    requests.exceptions.ConnectionError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’,))

    解决方法

    (1)随机切换User-Agent:

    user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",

                        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

                        "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0",

                        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36",

                        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",

                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",

                        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",

                        "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15",

                        ]

                    headers['User-Agent'] = random.choice(user_agent_list)

    (2)访问频率的设置: 

    time.sleep(6) #测试一下,如果是与访问频率有关可设置时间长一点 

    (3)使用代理ip:

    self.proxies = {

                "http": ip,

                "https":ip,

            }

    相关文章

      网友评论

          本文标题:python爬虫之如何随机更换User-Agent 关于C

          本文链接:https://www.haomeiwen.com/subject/qdzjmqtx.html