gpt4 book ai didi

python - Xpath 在开发控制台中公开文本节点,但不在 python shell 中公开

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:34 25 4
gpt4 key购买 nike

我正在编写一个网络抓取工具,它应该从 html 表内的行中抓取数据 here 。我可以通过在 firebug 中使用此 xpath 来公开表中行内的所有文本: $x('.//*[@class="statistics"]/tbody/tr/th/a/text()')。运行此命令会显示表中所有文本节点的完整集合。

我将此 xpath 建立在另一个类似的 xpath 之上,该 xpath 也返回所有所需的文本节点:'.//*[@class="productsEvent"]/text()' 。由于某种原因,当我在简单地请求 html 之后尝试打印 python shell 内统计表行中的文本时,我得到一个空列表。 xpath 在 shell 中可能无法工作的原因是什么?

最佳答案

这是因为 tbody - 它是由浏览器插入的,当通过 urllib2requests 下载页面时您将无法获取它>:

>>> import requests
>>> from lxml.html import fromstring
>>>
>>> url = "https://www.federalreserve.gov/releases/h10/hist/"
>>> response = requests.get(url)
>>> root = fromstring(response.content)
>>> root.xpath('.//*[@class="statistics"]/tbody/tr/th/a/text()') # with tbody
[]
>>> root.xpath('.//*[@class="statistics"]//tr/th/a/text()') # without tbody
['Australia', 'Brazil', 'Canada', 'China, P.R.', 'Denmark', 'EMU member countries', 'Greece', 'Hong Kong', 'India', 'Japan', 'Malaysia', 'Mexico', 'New Zealand', 'Norway', 'Singapore', 'South Africa', 'South Korea', '\r\n ', 'Sri Lanka', 'Sweden', 'Switzerland', 'Taiwan', 'Thailand', 'United Kingdom', 'Venezuela']

关于python - Xpath 在开发控制台中公开文本节点,但不在 python shell 中公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com