Google表格的IMPORTXML功能可以获取某些元素但不会获取其他元素

时间:2016-04-03 11:23:36

标签: xml xpath xml-parsing google-sheets

我想提取一些Quora答案的投票和观看数据。我试图使用Google Spreadsheet的IMPORTXML功能来做到这一点。要获得Upvotes数据,这是我正在使用的代码:

=IMPORTXML("https://www.quora.com/What-are-the-good-online-tutorials-and-books-to-learn-Android-development/answer/Pushpa-Latha-38","//span[@class='count']") 

出于某种原因,这显示#N / A(导入的内容为空)消息。当我在Chrome的XPath Helper插件上使用相同的XPath查询时,我确实得到了数据。在我执行此操作之前,我还使用类似的代码获得了有关此答案的总观看次数:

=IMPORTXML("https://www.quora.com/What-are-the-good-online-tutorials-and-books-to-learn-Android-development/answer/Pushpa-Latha-38","//div[@class='CredibilityFact']") 

这似乎工作正常。但不是第一个。这个有什么问题?

1 个答案:

答案 0 :(得分:2)

importXML的机器人抓取页面是该网站的匿名访问者。因此,它只能获取该网站向匿名访问者显示的内容。通过在未登录的浏览器中打开页面(或在浏览器的私人/隐身窗口中),您会发现没有类count的元素:不显示upvotes。

通常,要查看importXML看到的内容,应该以隐身模式打开该页面并查看其来源。除了匿名访客和登录访客之间的区别,许多网站使用JavaScript修改页面,importXML机器人不执行。