我们在爬取网站使用Xpath提取数据的时候,最常使用的就是Xpath的text()方法,该方法可以提取当前元素的信息,但是某些元素下包含很多嵌套元素,
我们想一并的提取出来,这时候就用到了string(.)方法,但是该方法使用的时候跟text()不太一样,下面就举实例来讲解一下具体的区别。
以这个段子为例,如果我们使用text()来拿取这个,会发现这一个段子竟然有11个text()信息,那么我们直接用text()来拿会怎么样呢?我们来看下结果
发现我们确实拿到了,可是我们却是拿到一个列表中的多个字符串,我们想合成一个还需要拼接,所以我们可以使用 string(.),来看看效果
发现现在就是我们想要的结果了,因此当我们需要拿取嵌套节点的内容时候,使用string(.)方法效果更好!
例一:
import requests
from lxml import etree
url='https://www.biedoul.com/wenzi/1/'
headers={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}
response = requests.get(url,headers=headers)
htmlweb=etree.HTML