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

Xpath在开发人员控制台中公开文本节点,但不在python shell中公开,python,shell,xpath,web-scraping,Python,Shell,Xpath,Web Scraping,我正在编写一个web scraper,它应该是从html表中的行中抓取数据。通过在firebug中使用这个xpath,我能够公开表中行内的所有文本:$x('./*[@class=“statistics”]/tbody/tr/th/a/text())。运行此命令将显示表中所有文本节点的完整集合 我将此xpath基于另一个类似的xpath,该xpath以前用于此站点,它还返回所有所需的文本节点:。/*[@class=“productionsEvent”]/text()。出于某种原因,在简单地请求ht

我正在编写一个web scraper,它应该是从html表中的行中抓取数据。通过在firebug中使用这个xpath,我能够公开表中行内的所有文本:
$x('./*[@class=“statistics”]/tbody/tr/th/a/text())
。运行此命令将显示表中所有文本节点的完整集合


我将此xpath基于另一个类似的xpath,该xpath以前用于此站点,它还返回所有所需的文本节点:
。/*[@class=“productionsEvent”]/text()
。出于某种原因,在简单地请求html之后,当我试图打印python shell中统计表行中的文本时,我得到了一个空列表。有什么xpath在shell中不起作用?

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

>>> 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']