我在Replit上尝试lxml请求,但我不明白为什么它不起作用。该程序在最大重试之前不会停止运行,我收到此错误:
追踪(最近一次通话): 文件" python",第6行,in requests.exceptions.ConnectionError:HTTPConnectionPool(host =' www.presidency.ucsb.edu',port = 80):使用url超出最大重试次数:/ws/index.php?pid = 29400.html(导致by NewConnectionError(':无法建立新连接:[Errno -2]名称或服务未知',))
我的代码很简单:
from lxml import html
import requests
url = 'http://www.presidency.ucsb.edu/ws/index.php?pid=29400.html'
r = requests.get(url)
tree = html.fromstring(r.content)
text = tree.xpath('//span[@class="displaytext"]/text()')
print(text)
我怎样才能让它运行?我试图获取该网站的内容,位于" displaytext"跨班。我一直在使用this Python guide作为参考。
Python版本3.5
答案 0 :(得分:4)
我是Repl.it的工程师,这是我们平台的限制。我们目前不允许传出网络请求。
答案 1 :(得分:1)
切换回答,因为它可以让我更好地排除事情。
查看您定位的网站的HTML。使用此命令,您只选择1个特定标记:
text = tree.xpath('//span[@class="displaytext"]/text()')
指向具有类" displaytext"
的特定范围您可以将代码更改为:
text = tree.xpath('//span[@class="displaytext"]/..')
for element in text[0]:
print element
这将选择带有类" displaytext"的范围。然后选择该范围的父级。在for循环中,您将打印该父项的所有子项。
现在它也显示了真正的问题:段落元素不在该列表中。对不起,不知道答案。