我正在尝试制作一个终端应用程序来抓取一个网站,并返回输入的城市名称的时间。这是我目前的代码:
import re
import urllib.request
city = input('Enter city name: ')
url = 'https://time.is/'
rawData = urllib.request.urlopen(url).read()
decodedData = rawData.decode('utf-8')
print(decodedData)
在最后一行之后,我得到了这个错误:
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
rawData = urllib.request.urlopen(url).read()
File "~/Python\Python35-32\lib\urllib\request.py", line 163, in urlopen
return opener.open(url, data, timeout)
File "~/Python\Python35-32\lib\urllib\request.py", line 472, in open
response = meth(req, response)
File "~/Python\Python35-32\lib\urllib\request.py", line 582, in http_response
'http', request, response, code, msg, hdrs)
File "~/Python\Python35-32\lib\urllib\request.py", line 510, in error
return self._call_chain(*args)
File "~/Python\Python35-32\lib\urllib\request.py", line 444, in _call_chain
result = func(*args)
File "~/Python\Python35-32\lib\urllib\request.py", line 590, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
为什么会出现这个错误?怎么了
[编辑] 原因是时间。是班恩斯的请求。在进行网页抓取时,请始终记住阅读条款和条件。免费的api也可以做同样的工作
当这种情况发生时,我通常会打开调试器,并尝试在访问网站时找出调用了什么。似乎time.is不喜欢让脚本调用他们的网站
快速搜索得到:
下面是一些可以用来构建项目的apihttps://www.programmableweb.com/category/time/api
相关问题 更多 >
编程相关推荐