在importhtml

时间:2016-01-21 13:17:39

标签: html xpath google-sheets

我正试图从产品中获取upvotes到Google电子表格。

我尝试了以下内容:

=IMPORTHTML(A2,"//section[@class='post-vote-button--count']/text()")

A2就是我的https://www.producthunt.com/tech/i-brew-my-own-coffee

有什么建议我做错了吗?

2 个答案:

答案 0 :(得分:1)

IMPORTHTML只允许您查找列表或表。 IMPORTXML允许您使用常规XPath表达式。

IMPORTXML函数实际上用于读取XML数据,而不是HTML。但是,如果HTML是XHTML或合理的HTML,您可以使用IMPORTXML导入HTML数据,然后将XPath表达式应用于它。

在这种情况下,HTML的格式不够好,无法由IMPORTXML函数解析,IMPORTHTML不允许您找到您感兴趣的内容。

所以,据我所知:除了为Google表格编写自定义代码外,没有办法达到你想要的效果。

编辑:正如Aurielle Perlmann所指出的,上述评论是对OP特定问题的错误分析。实际上,这个公式

=IMPORTXML("https://www.producthunt.com/tech/i-brew-my-own-coffee","//span[@class='post-vote-button--count']")

或者Aurielle的工作。在HTML源代码中,“166” - 想要的结果 - 不在section元素内,而是span元素。以下是页面源代码的片段:

<span class="post-vote-button--count" 
      data-reactid=".2dbdvned0xs.0.0.0.2.1.1">166</span>

此外,似乎在Google表格中的XPath表达式中使用text()是错误的。

答案 1 :(得分:1)

你可以用这个xpath拉它:

=IMPORTXML("https://www.producthunt.com/tech/i-brew-my-own-coffee","//*[@class='post-vote-button--count']")