在urrlib.request.urlopen中的Python 3中更改用户代理

发布于 2021-01-29 19:20:40

我想使用urllib.request.urlopen('someurl')以下网址打开网址:

with urllib.request.urlopen('someurl') as url:
b = url.read()

我不断收到以下错误:

urllib.error.HTTPError: HTTP Error 403: Forbidden

我知道该错误是由于该网站不允许python访问该网站,阻止僵尸程序浪费其网络资源而引起的,这是可以理解的。我去搜索,发现您需要更改urllib的用户代理。但是,我针对此问题找到的有关如何更改用户代理的所有指南和解决方案均已使用urllib2,并且我使用的是python
3,因此所有解决方案均不起作用。

如何使用python 3解决此问题?

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python文档

    import urllib.request
    req = urllib.request.Request(
        url, 
        data=None, 
        headers={
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
        }
    )
    
    f = urllib.request.urlopen(req)
    print(f.read().decode('utf-8'))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看