问题描述
我正在尝试使用Xpath来抓取包含图像和文本的表的行。只要存在图像as on this 3rd table on this page,一切正常。但是,如表as on this page所示,当图像丢失时,它将不起作用。我需要将图像与表数据的右行连接。
这是我一直在Google表格中使用的xpath_query字符串的类型,其中A1包含网址。
Tools->Options->Devices
感谢您的帮助。
解决方法
像这样:
=ARRAYFORMULA(IMAGE("https://www.patentati.it"&TRIM(SUBSTITUTE(FLATTEN(
SPLIT(QUERY(IFNA(REGEXEXTRACT(QUERY(ARRAY_CONSTRAIN(IMPORTDATA(A1),500,1),"where Col1 matches '.*zoomImage.*|.*rowspan.*'"),"src=""(.+png)"),"♀♫"),9^9),"♫")),"♀",))))
和整个表格:
=ARRAYFORMULA({{"figura"; IMAGE("https://www.patentati.it"&TRIM(SUBSTITUTE(FLATTEN(
SPLIT(QUERY(IFNA(REGEXEXTRACT(QUERY(ARRAY_CONSTRAIN(IMPORTDATA(A1),)))},QUERY(IMPORTHTML(A1,"table","select Col2,Col3",0)})
,
使用XPath过滤的更短的选择(C2
中的URL,I27
中的公式):
=ARRAYFORMULA({{"figura:";IMAGE("https://www.patentati.it/"&IMPORTXML(C2;"//tr//img/@src|//tr[not(.//img)]/td[@class='domanda']"))}\QUERY(IMPORTHTML(C2;"table";1);"select Col2,Col3")})
输出:
旁注:我住在欧洲。美国地区的公式:
=ARRAYFORMULA({{"figura:";IMAGE("https://www.patentati.it/"&IMPORTXML(C2,"//tr//img/@src|//tr[not(.//img)]/td[@class='domanda']"))},QUERY(IMPORTHTML(C2,Col3")})