2017-04-16 45 views
0

我知道有很多类似的问题,但我已经通过所有这些,他们不能帮助我。我试图从网站获取信息,并且我在其他网站上使用了相同的方法,并取得了成功。然而,在这里,它不起作用。如果有人能给我一些提示,我将非常感激!Python Xpath请求不规则地返回空列表

我想从this website得到明天的最高温度。

import re, requests, time 
from lxml import html 

page = requests.get('http://www.weeronline.nl/Europa/Nederland/Amsterdam/4058223') 
tree = html.fromstring(page.content) 
a = tree.xpath('//*[@id="app"]/div/div[2]/div[5]/div[2]/div[2]/div[6]/div/div/div/div/div/div/ul/div[2]/div/li[1]/div/span/text()') 
print(a) 

但是,这将返回一个空列表。在我检查过的其他一些网站上使用同样的方法效果很好。我试过在这个网站的其他部分和这个域名上应用这种方法,都无济于事。

感谢您的帮助! 致以问候

+0

这是因为这种情况下的xpath根本无效。这不会返回任何内容:'a = tree.xpath('// * [@ id =“app”]') – JacobIRR

+0

但我不认为这是(主要问题),当我检查网站的不同部分我遇到了同样的问题(以/ html/body/div开头的xpath)。感谢您的回复! 这可能是@ bill-bell建议的,cookie问题。 – Cobra

回答

1

请注意,当您尝试打开该页面时,系统会询问您是否同意允许使用Cookie。 (这是类似的东西,我没有荷兰语。)你需要使用像selenium这样的按钮来点击“确定”,这样你才能访问你真正想要的页面。然后,您可以使用Web Scrape page with multiple sections中讨论的技术来获取该页面的HTML,最后应用所需的任何xpath来检索所需的内容。

+0

确实是一个允许cookies的请求,我忘了点击了那个。我会尝试,如果我能用硒来解决问题,谢谢! – Cobra

+0

是的,我在页面上也看到@Cobra,但是即使在访问该页面之后,也没有发现ID为“app”的div – JacobIRR

+0

最后一个问题。我(你可能会注意到)在Python方面不是很有经验。将硒(或类似的)加入脚本对于一个相对较新的程序员来说是一个非常艰难的项目吗?我这样做只是为了弄清楚刮网站,我可以跳过那些包含饼干墙等的东西。我一直试图让硒工作几个小时,但继续运行到我做的越来越多的事情上不明白。 再次感谢您的帮助! – Cobra