从time.is返回time的python控制台应用程序

2024-05-01 22:03:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个终端应用程序来抓取一个网站,并返回输入的城市名称的时间。这是我目前的代码:

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也可以做同样的工作


Tags: inpyhttpurlresponserequestlibline
1条回答
网友
1楼 · 发布于 2024-05-01 22:03:54

当这种情况发生时,我通常会打开调试器,并尝试在访问网站时找出调用了什么。似乎time.is不喜欢让脚本调用他们的网站

快速搜索得到:

1532027279136 0 161_(UTC,_UTC+00:00) 1532027279104
Time.is is for humans. To use from scripts and apps, please ask about our API. Thank you!

下面是一些可以用来构建项目的apihttps://www.programmableweb.com/category/time/api

相关问题 更多 >