Python - 程序突然不工作
问题描述:
我的代码在没有警告的情况下停止工作。我缩小到requests.get
不再获取链接的HTML。相反,它得到<response [200]>
。Python - 程序突然不工作
我知道一个事实,它在一个点上工作,我不明白是什么改变了。
t = requests.get("http://dictionary.goo.ne.jp/srch/jn/変体/m0u/")
soup2 = BeautifulSoup(t.content)
lookup2 = soup2.find_all("dl", {"class":"allList"})[0]
link = lookup2.find_all("a")[0]
link = link.get("href")
link = "http://dictionary.goo.ne.jp/" + link
r = requests.get(link)
soup = BeautifulSoup(r.content)
lookup = soup.find_all("div", {"class":"meaning"})[0].text
print(lookup)
收到错误:
Traceback (most recent call last):
File "C:/Users/Dominic/PycharmProjects/untitled2/main.py", line 12, in <module>
lookup2 = soup2.find_all("dl", {"class":"allList"})[0]
IndexError: list index out of range
答
你的代码假定以下行:
t = requests.get("http://dictionary.goo.ne.jp/srch/jn/変体/m0u/")
总是给出相同的结果。这当然不是这种情况。该网站可能因维护而停机,可能会暂时陷入瘫痪,渲染站点时可能会出现错误等。
这些类型的问题使用HTTP状态代码进行通信,可以使用t.status_code
进行检索。
如果状态代码是不 200,你不能再做出关于HTML的任何假设在t.contents
,如事实,那就是任何<dl>
标签存在。
为了使您的代码更加健壮,您可以自己检查状态代码,或者在使用t.contents
之前至少致电t.raise_for_status()
。请参阅requests
documentation。
''是一个*成功的响应对象*,是您发布的代码中'r'或't'的字符串表示形式。 –
2015-03-13 12:46:13
你的代码**作品**,它打印'普通の形や体裁と违っていること。体裁を変えることまた,その形や体裁.'你确定你不只是印刷't'或'r “某处? – 2015-03-13 12:48:37
工作对我来说罚款“普通の形や体裁と违っていること。体裁を変えること。また,その形や体裁 ” – planet260 2015-03-13 12:55:37