V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zhijieju
V2EX  ›  Python

GitHub:随机生成 UserAgent 浏览器

  •  
  •   zhijieju · 2020-07-15 22:19:02 +08:00 · 1567 次点击
    这是一个创建于 1625 天前的主题,其中的信息可能已经有所发展或是发生改变。

    hello,小伙伴们大家好,今天给大家推荐的开源项目是:fake-useragent,这个开源项目对搞爬虫的业务的人来说是一个福利,不用去自己搭建自己的 UA 池,只需要调用对应的方法即可,简单易用,感兴趣的小伙伴不妨去下载尝试一下。

    使用方法


    from fake_useragent import UserAgent
    ua = UserAgent()
    
    ua.ie
    # Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);
    ua.msie
    # Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'
    ua['Internet Explorer']
    # Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)
    ua.opera
    # Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
    ua.chrome
    # Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
    ua.google
    # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
    ua['google chrome']
    # Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
    ua.firefox
    # Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
    ua.ff
    # Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
    ua.safari
    # Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
    
    # and the best one, random via real world browser usage statistic
    ua.random
    # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
    

    笔记


    fake-useragent 将收集的数据存储在您的操作系统临时目录中,例如/tmp

    如果您只想更新保存的数据库:

    from fake_useragent import UserAgent
    ua = UserAgent()
    ua.update()
    

    如果您不想缓存数据库或没有可写文件系统:

    from fake_useragent import UserAgent
    ua = UserAgent(cache=False)
    

    有时,useragentstring.comw3schools.com 更改其 html 或向下更改,在这种情况下,fake-useragent 使用 heroku 后备

    如果您不想使用托管的缓存服务器(添加了 0.1.5 版)

    from fake_useragent import UserAgent
    ua = UserAgent(use_cache_server=False)
    

    在极少数情况下,如果托管的缓存服务器和源不可用,fake-useragent 将无法下载数据:(添加了 0.1.3 版)

    from fake_useragent import UserAgent
    ua = UserAgent()
    
    # Traceback (most recent call last):
    #   ...
    # fake_useragent.errors.FakeUserAgentError
    
    # You can catch it via
    
    from fake_useragent import FakeUserAgentError
    
    try:
        ua = UserAgent()
    except FakeUserAgentError:
        pass
    

    如果您尝试获取未知的浏览器:(版本 0.1.3 已更改)

    from fake_useragent import UserAgent
    ua = UserAgent()
    ua.best_browser
    # Traceback (most recent call last):
    #   ...
    # fake_useragent.errors.FakeUserAgentError
    

    您可以通过添加来完全禁用任何烦人的异常 fallback:(添加了 0.1.4 版)

    import fake_useragent
    
    ua = fake_useragent.UserAgent(fallback='Your favorite Browser')
    # in case if something went wrong, one more time it is REALLY!!! rare case
    ua.random == 'Your favorite Browser'
    

    要控制数据文件的位置吗?(添加了 0.1.4 版)

    import fake_useragent
    
    # I am STRONGLY!!! recommend to use version suffix
    location = '/home/user/fake_useragent%s.json' % fake_useragent.VERSION
    
    ua = fake_useragent.UserAgent(path=location)
    ua.randoms
    

    如果需要保护某些属性,以免__getattr__使用方法在 UserAgent 中覆盖某些属性,则可以在 safe_attrs 此处传递属性名称。至少这将防止您在找不到属性时引发 FakeUserAgentError 。

    例如,将 fake_useragent 与注入配合使用时,您需要:

    import fake_useragent
    
    ua = fake_useragent.UserAgent(safe_attrs=('__injections__',))
    

    请不要使用,如果您不明白为什么需要它。这在极少数情况下是不可思议的。

    遇到问题???

    确保您使用的是最新版本!

    pip install -U fake-useragent
    

    通过 python 控制台检查版本:(添加了 0.1.4 版)

    import fake_useragent
    
    print(fake_useragent.VERSION)
    

    安装


    pip install fake-useragent
    

    开源地址: https://github.com/hellysmile/fake-useragent

    今天的推荐不知道大家喜欢吗?如果你们喜欢话,请在文章底部留言或点赞,以表示对我的支持,你们的留言,点赞,转发关注是我持续更新的动力哦!

    关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!

    1 条回复    2020-07-28 22:11:08 +08:00
    Kobayashi
        1
    Kobayashi  
       2020-07-28 22:11:08 +08:00 via Android
    这库写的还可以。但是 UA 数据源太烂:1 ) UA 版本太老,2 )没有移动端 UA 。
    结论:没用的必要。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5143 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:36 · PVG 17:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.