如何用Google Sheets IMPORTXML提取Tankathon网站的特定HTML href标签?
解决Google Sheets IMPORTXML提取指定href的问题
原XPath的错误点
你写的//a[@href/contains("players")]语法有误,contains()函数的正确用法是**contains(目标节点/属性, 匹配字符串)**,你把属性和函数的位置搞反了,导致无法匹配到目标元素。
正确的XPath表达式方案
根据你的需求,这里提供几种精准的写法:
1. 精确匹配目标href
如果要精准提取值为/players/zaccharie-risacher的<a>标签href属性,用这个表达式:
//div[@class="mock-row-player"]/a[@href="/players/zaccharie-risacher"]/@href
- 先定位到包含目标
<a>的父元素div.mock-row-player,缩小匹配范围,避免误抓其他无关的<a>标签 - 再精确匹配
href属性值,最后通过/@href直接提取属性内容
2. 匹配包含players的href(通用场景)
如果需要提取所有包含/players/路径的href,修正原错误写法后的表达式:
//div[@class="mock-row-player"]/a[contains(@href, "players")]/@href
- 这里
contains(@href, "players")是正确的语法,意思是匹配href属性中包含players字符串的<a>标签
在Google Sheets中使用的完整公式
把上面的XPath代入IMPORTXML函数,完整公式如下(以精确匹配为例):
=IMPORTXML("https://www.tankathon.com/mock_draft", "//div[@class='mock-row-player']/a[@href='/players/zaccharie-risacher']/@href")
注意:如果网站有反爬机制,IMPORTXML可能无法正常获取内容,此时需要检查网站的robots协议或是否有动态加载内容(动态内容IMPORTXML无法解析,因为它只能抓取静态HTML)
内容的提问来源于stack exchange,提问作者mika_972
相关产品推荐
相关产品推荐

