美文网首页pythonPython中文社区python机器学习爬虫
爬虫自动设置User-Agent代理,防止爬虫被封

爬虫自动设置User-Agent代理,防止爬虫被封

作者: _aLIEz | 来源:发表于2020-01-19 12:59 被阅读0次

    User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

    • 使用User-Agent可以将爬虫模拟成用户操作计算机,防止爬虫被封。而短时间进行大量访问也有可能被封掉,而自动生成UA可以有效解决这个问题。

    下面将介绍 fake_useragent 这个库,来随机生成User-Agent供爬虫使用

    from fake_useragent import UserAgent
    ua = UserAgent()
    
    print(ua.ie)  
    print(ua.chrome)  
    print(ua.firefox)
    print(ua.random)
    
    
    #生成的User-Agent
    Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36
    Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15
    
    • 生成的User-Agent无法正常使用,通过浏览器F12可以看到User-Agent格式,如 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
    • 爬虫使用的格式为'User-Agent':'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15',所以我们需要将生成数据的格式改变一下,以下是代码
    from fake_useragent import UserAgent
    
    ua = UserAgent()
    user_agent = ua.chrome
    headers = {'User-Agent':ua.chrome }
    print(headers)
    
    
    #生成的数据为
    {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36'}
    {'User-Agent': 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'}
    
    
    • 这样生成的UA就可以假如headers使用了

    相关文章

      网友评论

        本文标题:爬虫自动设置User-Agent代理,防止爬虫被封

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