Skip to content

Instantly share code, notes, and snippets.

@sxfmol
Created March 25, 2023 04:15
Show Gist options
  • Save sxfmol/d9ec6d854249b3b660a20e8fc81e07df to your computer and use it in GitHub Desktop.
Save sxfmol/d9ec6d854249b3b660a20e8fc81e07df to your computer and use it in GitHub Desktop.
在XPath中,text()、extract()和get()区别?
在XPath中,text()、extract()和get()都可以用来获取节点的值,但它们的具体用法略有不同。
text():用于获取当前节点下的所有文本内容。例如,response.xpath('//title/text()').extract_first()可以获取文档中<title>标签中的文本内容。
extract():用于提取当前节点下的所有HTML代码。它会将标签和标签内容都提取出来,并作为字符串返回。例如,response.xpath('//title').extract_first()会返回包含<title>标签和其中的文本内容的字符串。
get():用于获取当前节点下的某个属性的值。例如,response.xpath('//a/@href').get()可以获取所有<a>标签中的href属性的值。
一般来说,如果我们只需要获取某个节点的文本内容,就可以使用text()方法;如果我们需要获取节点的标签和标签内容,就可以使用extract()方法;如果我们需要获取节点的某个属性的值,就可以使用get()方法。
需要注意的是,extract()方法返回的是一个列表,如果想要获取其中的第一个元素,可以使用extract_first()方法。同样地,get()方法也可以使用get_first()方法获取第一个元素。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment