Python HTTP错误403禁止

Python HTTP错误403禁止,python,http,urllib,weather-api,google-weather-api,Python,Http,Urllib,Weather Api,Google Weather Api,我是一个Python新手,我只是想让一些代码正常工作 下面是代码,也是我不断遇到的严重错误 现在是错误: 回溯(最近一次调用上次):文件 “C:\Users\Alex\Desktop\JAVIS\JAISS master\first.py”,中的第5行 导入天气文件“C:\Users\Alex\Desktop\JAVIS\JAISS master\Weather.py”,第4行,在 google\u result=pywapi。从google(‘布里斯班’)文件“C:\Python27\lib\

我是一个Python新手,我只是想让一些代码正常工作

下面是代码,也是我不断遇到的严重错误

现在是错误:

回溯(最近一次调用上次):文件
“C:\Users\Alex\Desktop\JAVIS\JAISS master\first.py”,中的第5行
导入天气文件“C:\Users\Alex\Desktop\JAVIS\JAISS master\Weather.py”,第4行,在
google\u result=pywapi。从google(‘布里斯班’)文件“C:\Python27\lib\site packages\pywapi.py”第51行中获取天气信息
从谷歌获取天气信息
handler=urllib2.urlopen(url)文件“C:\Python27\lib\urllib2.py”,urlopen中的第126行
返回_opener.open(url、数据、超时)文件“C:\Python27\lib\urllib2.py”,第400行,打开
response=meth(req,response)文件“C:\Python27\lib\urllib2.py”,第513行,在http\u响应中
“http”、请求、响应、代码、消息、hdrs)文件“C:\Python27\lib\urllib2.py”,第438行,出现错误
返回self.\u call\u chain(*args)文件“C:\Python27\lib\urllib2.py”,第372行,在\u call\u chain中
result=func(*args)文件“C:\Python27\lib\urllib2.py”,第521行,默认为http\u error\u
raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp)HTTPError:HTTP错误403:禁止

谢谢你给我的任何帮助

403错误不是来自您的代码,而是来自谷歌。谷歌让你知道你没有权限访问你所请求的资源,在本例中是天气API,因为它已经停止使用(403从技术上来说代表禁止,他们也可能为404找不到或410消失)

有关更多信息,请阅读


除此之外,您的代码是正确的。

这不是您的错误。谷歌几天前停止了其天气API

如果你需要一个免费的天气API,我建议你使用我正在构建的服务,Metwit。这是最简单的工作示例,使用:


更多的例子可以在这里找到:

我正在使用Python3,并且有同样的问题。我发现Google阻止了不覆盖用户代理和接受编码头的urllib

用于测试搜索的标题:

GET /search?q=f1+2015 HTTP/1.1
Accept-Encoding: identity
Connection: close
User-Agent: Python-urllib/3.4
Host: 127.0.0.1:8076

我将“接受编码”设置为“测试”,将“用户代理”设置为“测试”,403错误停止。

请根据Pythonic约定设置代码格式,然后我们可能会帮助您。
Traceback (most recent call last):   File
"C:\Users\Alex\Desktop\JAVIS\JAISS-master\first.py", line 5, in
<module>
import Weather   File "C:\Users\Alex\Desktop\JAVIS\JAISS-master\Weather.py", line 4, in
<module>
google_result = pywapi.get_weather_from_google('Brisbane')   File "C:\Python27\lib\site-packages\pywapi.py", line 51, in
get_weather_from_google
handler = urllib2.urlopen(url)   File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)   File "C:\Python27\lib\urllib2.py", line 400, in open
response = meth(req, response)   File "C:\Python27\lib\urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)   File "C:\Python27\lib\urllib2.py", line 438, in error
return self._call_chain(*args)   File "C:\Python27\lib\urllib2.py", line 372, in _call_chain
result = func(*args)   File "C:\Python27\lib\urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 403: Forbidden
from metwit import Metwit
weather = Metwit.weather.get(location_lat=45.45, location_lng=9.18)
GET /search?q=f1+2015 HTTP/1.1
Accept-Encoding: identity
Connection: close
User-Agent: Python-urllib/3.4
Host: 127.0.0.1:8076