数据提取
- jsonpath使用
- 正则查找
- xpath查找及使用
- bs4使用
- csv文件写入
jsonpath介绍
使用普通查找:
print(data["store"]["book"][0]["author"]) # 找到book下的第一个author
使用jsonpath查找:
正则
re语法:
re 是匹配字符串内容的一种规则
- re.compile 正则表达式的语法
- re.search 找一个
- re.match 从头找一个 没有返回None
- re.findall 找所有 返回列表
. 匹配任意字符,除了换行符,re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符
* 匹配0个或多个的表达式
+ 匹配1个或者多个的表达式
? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
[] 表示一组字符。
"|" A|B,创建一个正则,将匹配A或B。
\s 匹配任何空白字符
\d 匹配任何数字
xpath
XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
全称为XML Path Language 一种小型的查询语言
说到XPath这门语言,不得不说它所具备的优点:
- 可在XML中查找信息
- 支持HTML的查找
- 通过元素和属性进行导航
xpath常用规则
- nodename 选取此节点的所有子节点
- / 从当前节点选取直接子节点
- // 从当前节点选取子孙节点
- . 选取当前节点
- .. 选取当前节点的父节点
- @ 选取属性
Beautiful Soup
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.
- tag是bs4中的一个对象之一, 其中tag最重要的属性是name 和attributes!
- string&find_all
- css选择器
csv文件存储
- csv 文件是大数据文件存储格式的文件 结构与excel不同。
- CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。
- 因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
- 例如,一个用户可能需要交换信息,从一个以私有格式存储数据的数据库程序,到一个数据格式完全不同的电子表格。最可能的情况是,该数据库程序可以导出数据为“CSV”,然后被导出的CSV文件可以被电子表格程序导入。
例子1:
import csv
# 以字典的方式写入数据
students = [
{"name": "张三", "age": 23, "height": 156},
{"name": "李四", "age": 23, "height": 156},
{"name": "王五", "age": 34, "height": 156},
{"name": "赵六", "age": 35, "height": 156},
]
headers = ('name', "age", "height") # 表头
fp = open("student3.csv", "w", encoding="utf-8", newline='') # 返回一个操作文件的句柄
writer = csv.DictWriter(fp, headers)
writer.writeheader() # 写入头部
writer.writerows(students) # 写入内容
fp.close()
例子2:
import csv
以元祖的方式
定义表头
headers = ('name', "age", "height")
定义数据
students = [
("王五", 24, 176),
("李四", 24, 176),
("张三", 23, 178)
]
fp = open("student.csv", "w", encoding="utf-8", newline='')
writer = csv.writer(fp) # 返回一个写入的对象
writer.writerow(headers)
writer.writerows(students)
fp.close()
没有回复内容