Bootstrap

xpath取出某个标签下多个标签的所有文本信息几种方法

爬虫爬取数据有时候我们需要爬取多个标签的文本内容,或者需要保留标签属性,就要连同标签一起拿下来。你可以写正则,今天我介绍一种用xpath爬取的方法。
下边第一种方法就可以连同HTML标签一起爬下来,后两种能爬取所有文本信息,但没有了标签属性:

第一种方法可以取出某个标签内的HTML字符串,包含各种标签属性,输出的结果就是网页正常显示的文章部分的HTML。

 html_content3 = requests.get(details_url).text
    html = etree.HTML(html_content3)
    # content=html.xpath('//div[@class="article-entry"]')[0].xpath('string(.)').strip()#得到其中的所有文本信息,但没有了标签属性。
    # 先取出包含文章主体的标签
    contents = html.xpath('//div[@class="article-entry"]')[0]
    # 取出来的是个element对象,需要给他转换成字符串
    name1 = etree.tostring(contents, method='html')
    # 转成字符串后中文不能正常显示,需要再对其进行解析
    name2 = HTMLParser().unescape(name1.decode())
    content = name2
    

welfare = response.xpath('//div[@class="t1"]').xpath('string(.)').extract()[0]

welfare = response.xpath('//div[@class="t1"]//text()').extract()[0]
;