正则
Xpath
from lxml import etree
html_element = etree.HTML('html内容')
result = html_element.xpath('匹配规则')
"""
常用的语法(选取节点的方式)
notename:选取标签名为notename的所有子节点(包括节点本身)
/ :表示从跟节点开始获取
// :从任意位置匹配节点
. :从当前节点选取
.. :选取当前节点的父节点
@属性名 : 获取节点的属性 /a/@href
text() : 获取节点的文本 /a/text()
notename[@class=''] : 根据class获取节点
notename[@id=''] : 根据id获取节点
notename[num] : 获取第num个名为notename的节点(索引值不是从0开始,而是从1开始)
notename[last()] : 获取最后一个名为notename的节点
notename[last()-1] : 获取倒数第二个个名为notename的节点
notename[posation() > 3]: 选取前三个
"""
Beautiful Soup
from bs4 import BeautifulSoup
html_soup = BeautifulSoup('html文档','解析器')
"""
文档解析器常用的两种
'lxml': 使用的是lxml.html解析器,效率高,兼容性较好
'html.parser': python自带的html解析器
"""
#常用的方法
"""
(Beautifulsoup和Tag类型的对象使用finn_all方法)
html_soup.find_all()
name:节点名称 (1.可以是一个字符串,2可以是一个列表,3.可以是一个正则表达式)
attrs: 节点的属性 (字典)
text: 字符串,正则表达式,列表 (查找文本)
html_soup.find()
css选择器
. 表示class选择器
# 表示id选择器
.string 表示选取标签文本
.get_text() 表示选取标签文本
attrs() 获取标签的所有属性值
attrs['属性名'] 获取标签的某个属性的属性值
"""
pyQuery