通过Google搜索结果中的ImportXML获取链接

时间:2016-09-08 15:40:26

标签: google-sheets spreadsheet

我正在尝试通过Google搜索结果中的Google工作表获取链接:

我使用以下公式:

=ImportXML(CONCATENATE("http://www.google.de/search?q={site:www.amazon.de ",B3,"}&num=",D3), "//h3[@class='r']/a/@href")

您可以在下面找到电子表格:

https://docs.google.com/spreadsheets/d/1S0GI0d_J_8GxUp24631NDhzA_G__ihRRGeOJ5Re7N54/edit?usp=sharing

有什么建议我做错了吗?

感谢您的回复!

1 个答案:

答案 0 :(得分:0)

两件事 - 一个是你可以消除连接函数并使用&代替它 - 它更简单并具有完全相同的效果 - 2你可以使用数组公式格式的正则表达式替换将结果字符串转换为真实的网址:

`=ARRAYFORMULA(REGEXREPLACE(IMPORTXML("https://www.google.de/search?q={site:www.amazon.de "&B1&"}&num="&C1"//h3/a/@href"),"(^.*q=)(.*)(&sa.*)","$2"))`

对于使用&的URL,它看起来像这样:

https://www.google.de/search?q={site:www.amazon.de "&B1&"}&num="&C1

我简化为//h3/a/@href的xpath这不是必需的,但有点简单..

在REGEXREPLACE函数中,我创建了3个捕获组,由周围的括号表示:

(^.*q=) (.*) (&sa.*)

后跟"$2"作为第三个参数,指示它提取SECOND捕获组,这是您尝试获取的实际网站网址。

通过在所有行周围使用Arrayformula - 它会将它应用于所有行,而不仅仅是第一行

enter image description here