python - 使用 python 抓取网页:urlopen 返回 HTTP 错误 403:禁止
问题描述
我正在尝试使用 urlopen 从 Fragantica.com 下载数据,但即使在更改用户代理并添加标头之后也会发生错误(“HTTP 错误 403:禁止”)。我也尝试过这里的代码,但没有成功(http://wolfprojects.altervista.org/changeua.php#problem)。
这是我的代码:
import urllib.request
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15'
url = "https://www.fragrantica.com/perfume/Tom-Ford/Tobacco-Vanille-1825.html"
headers={'User-Agent':user_agent,}
request=urllib.request.Request(url,None,headers) #The assembled request
response = urllib.request.urlopen(request)
data = response.read() # The data u need
这是我遇到的错误: HTTPError: HTTP Error 403: Forbidden
解决方案
您可能需要指定更多标题,请尝试以下操作:
import urllib.request
url = "https://www.fragrantica.com/perfume/Tom-Ford/Tobacco-Vanille-1825.html"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
request=urllib.request.Request(url=url, headers=headers) #The assembled request
response = urllib.request.urlopen(request)
data = response.read() # The data u need
推荐阅读
- python - 在 JS 脚本中使用 jinja 变量
- c# - 如何在 Unity 中缓和游戏对象的 y 速度?
- schema.org - 一页上有多个 schema.org HowTo 说明
- python - 正则表达式 - 如何从更广泛的数字模式中排除 4 位数字
- python - AttributeError:“NoneType”对象没有属性“next”并且函数缺少 2 个必需的位置参数:“x”和“y”
- excel - 将密钥发送到正确的自定义 Excel 功能区
- javascript - 将反应类组件转换为反应钩子组件
- mongodb - MongoDB聚合函数
- nginx - 我也想在 EC2 上使用 nodejs 应用程序托管一个静态网站
- python - 从 config.ini 中的另一个部分访问部分键值