【发布时间】:2020-07-30 08:27:35
【问题描述】:
所以我对编码很陌生,我只是在学习网络抓取。
我不确定如何处理这个,它可能是基本的东西。但再次不确定我在这里做错了什么 对于你们中的一些人来说,这可能是一个非常简单的解决方案。任何帮助都非常感谢
from urllib.request import urlopen as uReq
dcgp_url = "http://news.formulad.com/"
uClient = uReq(dcgp_url)
page_html = uClient.read
uClient.close()
然后它向我显示此错误:
C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\python.exe "E:/Discord Bot/Web scraping.py"
Traceback (most recent call last):
File "E:/Discord Bot/Web scraping.py", line 7, in <module>
uClient = uReq(dcgp_url)
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 640, in http_response
response = self.parent.error(
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 569, in error
return self._call_chain(*args)
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 502, in _call_chain
result = func(*args)
File "C:\Users\mateu\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Process finished with exit code 1
【问题讨论】:
-
HTTP 错误 403 表示您无权访问您请求的 url。这可能是因为您使用的是刮刀。设置用户代理应该可以解决它(请检查网站的法律文档以验证这是否合法)。
-
完全不知道为什么你会得到一个带有 urllib 的 403 但使用 requests 模块,它似乎工作。 w3schools.com/python/module_requests.asp