我有一个Google表,其中行是产品,列是关于这些产品的信息(材料、颜色、价格、.)。
使用带有相应xpath查询的函数IMPORTXML检索这些信息。在下面的示例中,D列是该产品的URL。这些函数检索第3行产品的信息(玻璃、颜色和类型):
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Glass')]]/td")
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Color')]]/td")
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Type')]]/td")对于每个产品,大约有10个列被检索,因此对于同一个URL有10个不同的函数IMPORTXML。
当产品很少时,它可以正常工作,但当产品太多时,只检索到一些信息,而其他单元格则保持冻结状态,其值为“Loading.”。
我找到的唯一解决办法是手动复制/粘贴检索到的值(,Ctrl+C,Ctrl+Maj+v),然后一些其他单元格被解除阻塞并开始导入值。最后,我需要对所有的细胞都这样做,这需要很长的时间。
例如:
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,{'Glass', 'Color', 'Type'})]]/td")发布于 2018-05-30 13:06:34
可以通过调整xpath查询并结合使用不同的Google电子表格公式来解决此问题。
例如:
=TRANSPOSE(IMPORTXML(D2,"
(//table[@class='info-table']/tr[th/text()[contains(.,'Diameter')]]/td)[1] |
(//table[@class='info-table']/tr[th/text()[contains(.,'Material')]]/td)[1] |
(//table[@class='info-table']/tr[th/text()[contains(.,'Glass')]]/td)[1] |
(//table[@class='info-table']/tr[th/text()[contains(.,'W/R')]]/td)[1] |
(//table[@class='info-table']/tr[th/text()[contains(.,'Caliber')]]/td)[1] |
(//table[@class='info-table']/tr[th/text()[contains(.,'Type')]]/td)[1]"))通过这样做,每个产品只有一个importXML。
https://stackoverflow.com/questions/50604523
复制相似问题