XPath查询:在LI&amp ;;之间提取文本一个标签

时间:2018-02-05 16:02:44

标签: html xpath web-scraping google-sheets

在谷歌表中,为了我自己的娱乐,我试图在“四风谷”中展示“大帆船”。"作为下面代码中的一个字符串。

我想这样做大约600页,所有这些页面的HTML结构都相同(没有ID' s)。我只会对UL标签之间的第一个列表感兴趣。

<h3>Source:</h3>
<ul>
  <li>
    <a href='http://www.wowhead.com/npc=62346' target='_blank'>Galleon</a> in Valley of the Four Winds.
  </li>
  <li>
    <a href='/bmah.php'>The Black Market Auction House</a> (rarely)
  </li>  
</ul>

源代码中有许多列表&amp;并不总是以相同的顺序,这使得像IMPORTHTML(B2,&#34; list&#34;,3)这样的东西难以使用。

我可以得到&#34; Galleon&#34;本身使用这个

=IMPORTXML(URL, "//a[@href[starts-with(., 'http://www.wowhead.com/npc')]]")

我尝试添加&#34; // li | &#34;但它带回了所有的清单和不是我希望的文本,这是有道理的,但我对如何继续这一点感到茫然。

=IMPORTXML(URL, "//li | //a[@href[starts-with(.,'http://www.wowhead.com/npc')]]")

我试过阅读指南&amp;指导方针,但此时我只是挣扎而且有点迷失。

希望一切都有意义,非常感谢你们的回复。

2 个答案:

答案 0 :(得分:1)

这个正在处理你的样本

xmllint --html --xpath 'string(//li[a[@href[starts-with(., "http://www.wowhead.com/npc")]]])' test.html

Galleon in Valley of the Four Winds.

答案 1 :(得分:0)

谢谢!

我已经为Google表格重建了它它将每个部分发布在不同的单元格中,但是快速连接构建了一个完整的字符串。

 =IMPORTXML(A5,"//li[a[@href[starts-with(.,""wowhead.com/npc"")]]]")