python 3: 使用请求时收到 403:forbidden 错误

python 3: received 403:forbidden error when using request

HTTP 错误 403:禁止使用以下两个命令之一生成。

requests.get('http://www.allareacodes.com')

urllib.request.urlopen('http://www.allareacodes.com')

但是,我可以在 chrome 中浏览该网站并查看其来源。此外,我的cygwin中的wget也可以抓取html源。

谁知道如何单独使用python中的包来获取本站的源码?

您的请求代码有错误。应该是:

import requests
r = requests.get('http://www.allareacodes.com')
print(r.text)

然而,在您的情况下,该网站有一个 "noindex" 文件可以阻止脚本获取原始 HTML 数据。作为解决方案,只需伪造您的 headers 以便网站认为您是真实用户。

示例:

import requests
r = requests.get('http://www.allareacodes.com', headers={
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
})
print(r.text)