Python XPath从Google Project Sunroof返回空列表

时间:2019-12-15 02:33:20

标签: python xpath web-scraping

我正在尝试从Google的天窗项目中提取平方英尺和日照小时的数据,但是XPath仅返回空白字符串。 这是带有Lowe的地址的相关代码:

   from lxml import

   htmlpageContent=requests.get('https://www.google.com/get/sunroof/building/34.00192560211979/-81.21430071233021/#?f=buy')
   tree = html.fromstring(pageContent.content)

   print(tree.xpath("/html/body/div[1]/address-view/div[1]/div/div/section[1]/div[2]/md-card[1]/ul/li[1]/div[2]"))     
   print(tree.xpath("/html/body/div[1]/address-view/div[1]/div/div/section[1]/div[2]/md-card[1]/ul/li[2]/div[2]/text()"))

在这种情况下,我想要一些类似的东西:

[1,581 hours of usable sunlight per year]

[134,199 sq feet available for solar panels ]

相反,我只是得到:

[]

[]

我对这样的Web爬取和xpath还是陌生的,因此我无法进行很多测试,但是我知道不同的路径都会输出空白列表。

1 个答案:

答案 0 :(得分:0)

正如@furas指出的那样,对于那些依赖Javascript获取内容的页面(如今,这是大多数内容),您将需要使用selenium之类的东西来控制实际的Web浏览器。一个简单的解决方案可能看起来像这样:

>>> from selenium import webdriver
>>> d = webdriver.Chrome()
>>> d.get('https://www.google.com/get/sunroof/building/34.00192560211979/-81.21430071233021/#?f=buy')
>>> [e.text for e in d.find_elements_by_css_selector('.panel-fact-text')]
['1,581 hours of usable sunlight per year', '134,199 sq feet available for solar panels']
>>> d.close()