我正在尝试使用beautifulsoup和anaconda来搜索python 3.6。
我正试图爬accuweather.com来查找特拉维夫的天气。
这是我的代码:
from bs4 import BeautifulSoup
import requests
data=requests.get("https://www.accuweather.com/he/il/tel-
aviv/215854/weather-forecast/215854")
soup=BeautifulSoup(data.text,"html parser")
soup.find('div',('class','info'))
我收到此错误:
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', OSError("(10060,
'WSAETIMEDOUT')",))
我该怎么办,这个错误是什么意思?
答案 0 :(得分:1)
问题不在于代码,而在于网站。
如果您在请求的标题中添加User-Agent
字段,则该字段看起来像是来自浏览器。
示例:
from bs4 import BeautifulSoup
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}
data=requests.get("https://www.accuweather.com/he/il/tel-aviv/215854/weather-forecast/215854", headers=headers)
答案 1 :(得分:1)
此错误是什么意思
搜索“ errno 10600”会产生很多结果。基本上,这是一个低级的网络错误(这不是http特定的,对于任何类型的网络连接您都可能遇到相同的问题),其规范描述为
连接尝试失败是因为被连接方在一段时间后未正确响应,或者由于连接的主机未能响应而建立的连接失败
IOW,您的系统无法连接到主机。这可能是出于多种原因,要么是临时的(例如您的Internet连接断开),要么不是临时的(例如,代理-如果您位于代理之后-阻止对此主机的访问等),或者很简单(如实际情况)此处)主机阻止了您的请求。
出现此类错误时,第一件事就是检查您的互联网连接,然后尝试在浏览器中获取该url。如果您可以在浏览器中找到它,则通常是主机阻止您,最常见的是基于客户端的“用户代理”标头(此处的客户端为requests
)并指定“标准”用户代理如新手答案中所述,标题应该可以解决问题(在这种情况下确实可以解决,或者至少对我有用)。
NB:设置用户代理:
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}
data = requests.get("https://www.accuweather.com/he/il/tel-aviv/215854/weather-forecast/215854", headers=headers)