爬虫爬取数据有时候我们需要爬取多个标签的文本内容,或者需要保留标签属性,就要连同标签一起拿下来。你可以写正则,今天我介绍一种用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]