Python 3 Web 中的问题 HTTP 错误 403 抓取出版物

Posted

技术标签:

【中文标题】Python 3 Web 中的问题 HTTP 错误 403 抓取出版物【英文标题】:Problem HTTP error 403 in Python 3 Web Scraping the publications 【发布时间】:2021-09-13 21:37:48 【问题描述】:

这是我尝试放置出版物 URL 时发生的错误的回溯。它适用于常规网站,例如 *** 或 Wikipedia,但是当我在 https://www.sciencedirect.com/science/article/pii/S1388248120302113?via%3Dihub 等出版物上尝试时,会出现错误。谁能帮帮我??

这是我的代码: req = Request('https://www.sciencedirect.com/science/article/pii/S1388248120302113?via%3Dihub', headers='User-Agent': 'Mozilla/5.0') html_plain = urlopen(req).read()

这是错误的回溯:

文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 214 行,在 urlopen 返回 opener.open(url, 数据, 超时) 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 523 行,打开 响应=方法(请求,响应) 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 632 行,在 http_response 响应 = self.parent.error( 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 561 行,错误 返回 self._call_chain(*args) _call_chain 中的文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 494 行 结果 = 函数(*args) 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\urllib\request.py”,第 641 行,位于 http_error_default 引发 HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError:HTTP 错误 403:禁止

谢谢!

【问题讨论】:

【参考方案1】:

HTTP 403 Forbidden client 错误状态响应码表示服务器理解请求但拒绝授权。 这不是代码中的错误,这是网站在您进行网络抓取时拒绝为该页面提供服务器。

【讨论】:

有些网站只是在代理不正确的情况下禁止这种请求。实际上有一种方法可以解决这个问题,因为您可以使用浏览器访问该网站

以上是关于Python 3 Web 中的问题 HTTP 错误 403 抓取出版物的主要内容,如果未能解决你的问题,请参考以下文章

asp.net web.config的设置问题

来自 Python All in One for Dummies 的 Python Web scraper 副本上的 HTTP 错误 406

Web服务中的握手错误

python面试题四:Python web框架

cx_Freeze:主脚本中的 Python 错误。 Python 3.6 + cx_Freeze

python 中的 Web Scraping:BS、selenium 和 None 错误