1.XPath:
XPath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。
工具:扩展商店里搜索:XPath Helper(我是QQ浏览器)
XPath的语法:
使用举例:
2. lxml库:
lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据
下载:pip install lxml
基本使用:在lxml中使用xpath语法
3.bs4库的使用:
和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。
lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM(Document Object Model)的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。
BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。
Beautiful Soup 3 目前已经停止开发,推荐现在的项目使用Beautiful Soup 4。
安装:pip install bs4
bs4的简单使用:
from bs4 import BeautifulSoup html = """ 一段HTML代码 """ #创建 Beautiful Soup 对象
# 使用lxml来进行解析
soup = BeautifulSoup(html,"lxml") print(soup.prettify())
举例使用:
# bs4库的使用
# from bs4 import BeautifulSoup
# html = 'xxxx'
# bs4底层由lxml实现
# bs = BeautifulSoup(html, 'lxml')
# .获取所有span标签
# spans = bs.find_all('span')
# for span in spans:
# print(span)
# .获取前二个span标签(limit=)中的第二个span标签([]) 下标:从0开始
# span = bs.find_all('span', limit=)[]
# print(span)
# .获取所有dl中class等于bottom的标签
# dls = bs.find_all('dl', class_='bottom')
# for dl in dls:
# print(dl)
# 或者使用attrs标签(attrs=一个字典)
# dls = bs.find_all('dl', attrs={'class':'bottom'})
# for dl in dls:
# print(dl)
# .获取所有a标签的href属性
# aList = bs.find_all('a')
# for a in aList:
# # .使用下标方法(推荐)
# href = a['href']
# # .使用attrs方式
# href2 = a.attrs['href']
# print(href2)
4.还有一种方法解析数据:正则表达式
以下内容从别人博客转载,方便复习