我正试图从产品中获取upvotes到Google电子表格。
我尝试了以下内容:
=IMPORTHTML(A2,"//section[@class='post-vote-button--count']/text()")
A2
就是我的https://www.producthunt.com/tech/i-brew-my-own-coffee
。
有什么建议我做错了吗?
答案 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']")