正则表达式
参考网址
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配。
import re
title = "你好,hello,世界"
pattern = re.compile(r'[\u4e00-\u9fa5]+') #这里的+是连接符
result = pattern.findall(title)
print(result)
[‘你好’, ‘世界’]
xpath
lxml的相关类:Element,ElementTree,ElementPath
Xpath语法:
nodename: 选取此节点的所有子节点
/:从根节点选取
//:从匹配选择的当前节点选取文档中的节点,不用考虑位置
. :选取当前节点
… :选取当前节点的父节点
@ : 选取属性
例子:
html = etree.parse(‘hello.html’)
result =html.xpath(’//li/@class’) #返回所有li标签下拥有属性class的属性值
lxml库:大部分功能在lxml.etree模块中
from lxml import etree
语法:
- 创建节点,添加属性:root = etree.Element(‘root’,interesting = ‘totally’)
- 获取节点名称:print(root.tag)
- 已有节点添加属性:root.set(‘age’,‘30’)
- 将元素序列化为XML树的编码字符串表示形式:etree.tostring(root)
- 添加文本 :root.text
- 返回匹配到的第一个子元素:root.find(“a”)
- 返回一个匹配所有元素的迭代器:root.iterfind(“a”)
etree.fromstring(’<></>’) --返回根节点
etree.XML(’<></>’) --与上同
etree.HTML(’<></>’) --自动增补
bs4
创建beautifulsoup 书P79
涉及到的方法:
- print(soup.prettify()) 友好显示html内容
- soup.find_all([‘a’,‘b’]) 查找满足条件 soup.find_all(href=’’,id=’’)