我在Chrome中的XPATHHelper和Firefox中的XPather中尝试了以下XPATH,它总是在Google搜索结果页面中显示所有代码段(即搜索结果的描述),但它在Scrapy shell中不起作用:
//span[@class='st']
如果重要,我会像这样调用scrapy shell:
scrapy shell "http://www.google.com/search?q=myQuery"
我说hxs.select("//span[@class='st']")
。这总是返回一个空列表。
关于为什么会发生这种情况的任何线索?
答案 0 :(得分:1)
Scrapy无法“解析”需要执行Javascript的网站。不同的开发人员控制台向您展示的是已经解释并执行的所有Javascripts应用的网站。
由于谷歌在Javascript的帮助下显示其结果,因此Scrapy本身无法解决这个问题。
答案 1 :(得分:0)
有时网站无法使用Javascript Disabled(例如Applebees.com),因此您必须使用Selenium等实际浏览器。
答案 2 :(得分:0)
在Firefox网址栏中输入: about:config中 找到javascript.enable行并将其值更改为false
安装FireFinder扩展程序 打开萤火虫(F12)
然后像xpath表达式一样享受谷歌搜索:
//*[@id="search"]//li[@class="g"]/div[@class="s"]//cite