我正在尝试通过 Google Spreadsheet 中的 importXML 进行网页抓取,请阅读此页面中的内容:
我需要做的是选择“ Lista de Procesos”下面的列表,并将其按行分开。我转到页面,检查并复制了XPath
const placeList = this.state.places.map(place =>
{
return ( <li>{place}</li> )
});
产生此代码:
//*[@id="node-page-442"]/div[1]/div/div/div/p[5]
但是,当我尝试加载它时,出现错误#N / A
“导入的内容为空”
答案 0 :(得分:1)
获取内容为“ Lista de Procesos”的h4
元素之后的节点的一条路径是
//article[@id='node-page-442']/div[contains(@class, 'content')]/div[contains(@class, 'field-name-body')]/div[@class='field-items']/div[contains(@class,'field-item')]/h4[contains(text(), 'Lista de Procesos')]/following-sibling::*
检索到的子代不是结构化的,而是完整的。如果可以使用XSLT-2.0,则可以通过将for-each-group
与group-starting-with='strong'
一起使用来构造它们。但这只是一种可能性。
表达式可以简化为一个简单的术语:
//h4[contains(text(),'Lista de Procesos')]/following-sibling::*
也许这更适合您的需求。