https://next.newsimpact.com/NewsWidget/Live
我正在尝试编写一个python脚本,它将从上面链接中的HTML表中获取一个值。上面的链接是我试图从中抓取的网站,这是我写的代码。我认为我的XPath可能不正确,因为它在其他元素上运行良好,但是我使用的路径没有返回/打印任何内容。在
from lxml import html
import requests
page = requests.get('https://next.newsimpact.com/NewsWidget/Live')
tree = html.fromstring(page.content)
#This will create a list of buyers:
value = tree.xpath('//*[@id="table9521"]/tr[1]/td[4]/text()')
print('Value: ', value)
奇怪的是,当我打开“查看源代码”页时,我找不到要从中提取的表。 谢谢你的帮助!在
初始页面源中缺少必需的数据-它来自XHR。您可以得到如下信息:
您可以将
response
解析为简单的Python dict并获得所有必需的数据你的问题很简单,
request
根本不处理javascript。值是JS生成的!在如果您真的需要运行这个xpath,那么您需要使用一个能够理解JS的模块,比如spynner。在
您可以通过首先使用curl或在浏览器中禁用JS来测试何时需要JS。使用firefox:
about:config
在导航栏中,然后搜索javascript.enabled
,然后双击它在真或假之间切换在chrome,打开chrome dev tools,在某处有一个选项。在
检查https://github.com/makinacorpus/spynner
另一个(可能的)问题是,使用
tree = html.fromstring(page.text)
而不是tree = html.fromstring(page.content)
相关问题 更多 >
编程相关推荐