1

我在 Chrome 中的 XPATHHelper 和 Firefox 中的 XPather 中尝试了以下 XPATH,它总是在谷歌搜索结果页面中显示所有片段(即搜索结果的描述),但它在 Scrapy shell 中不起作用:

//span[@class='st']

万一这很重要,我会像这样调用scrapy shell:

scrapy  shell "http://www.google.com/search?q=myQuery" 

我说hxs.select("//span[@class='st']")。这总是返回一个空列表。关于为什么会发生这种情况的任何线索?

4

3 回答 3

1

Scrapy 无法“解析”需要执行 Javascript 的网站。不同的开发者控制台向您展示的是已经应用了所有 Javascript 的已解释和执行的站点。

由于谷歌在 Javascript 的帮助下显示其结果,Scrapy 本身无法处理这个问题。

于 2012-06-08T06:55:26.390 回答
0

有时网站无法在禁用 Javascript 的情况下工作(例如 Applebees.com),因此您必须使用像 Selenium 这样的实际浏览器。

于 2013-01-07T17:42:59.320 回答
0

在 Firefox url 栏中输入 : about:config 找到 javascript.enable 行并将其值更改为 false

安装 FireFinder 扩展 打开 Firebug (F12)

然后享受像 xpath 表达式一样抓取 google 的乐趣:

//*[@id="search"]//li[@class="g"]/div[@class="s"]//cite
于 2014-08-26T14:13:56.523 回答