1.创建writer对象
csv.writer(csv文件对象) - (写入数据的时候一行内容对应一个列表)
csv.DictWriter(csv文件对象, 字段名列表) - (写入数据的时候一行内容对应一个字典)
# 1)使用writer
f1 = open('files/data1.csv', 'w', encoding='utf-8', newline='')
w1 = csv.writer(f1)
# 2)使用DictWriter
f2 = open('files/data2.csv', 'w', encoding='utf-8', newline='')
w2 = csv.DictWriter(f2, ['姓名', '年龄', '分数'])
2.写入数据
writer写入数据
writer对象.writerow(一行数据)
writer对象.writerows(多行数据)
w1.writerow(['姓名', '年龄', '分数'])
w1.writerow(['小明', 18, 90])
w1.writerows([
['小花', 20, 88],
['张三', 30, 95],
['李四', 25, 70]
])
DictWriter写入数据
# 将字段作为第一行内容
w2.writeheader()
w2.writerow({'姓名': '小明', '年龄': 18, '分数': 90})
w2.writerow({'姓名': '小花', '年龄': 20, '分数': 88})
w2.writerows([
{'姓名': '张三', '年龄': 30, '分数': 95},
{'姓名': '李四', '年龄': 25, '分数': 70}
])
1.创建reader
csv.reader(csv文件对象) - 每一行对应一个列表获取数据
csv.DictReader(csv文件对象) - 每一行对应一个字典获取数据
f1 = open('files/租房信息.csv', 'r', encoding='utf-8')
r1 = csv.reader(f1)
f2 = open('files/租房信息.csv', 'r', encoding='utf-8')
r2 = csv.DictReader(f2)
print(next(r1))
print(list(r1))
print(next(r2))
a = list(r2)
for x in a:
print(x)
a.html - 负责给网页提供内容(通过各种各样的标签来给网页提供各种各样的内容)
b.css - 负责网页内容的变化和样式
c.js - 负责网页内容变化
"""
一个网页对应一个html文件,html文件内容就可以构建一个网页
html为网页提供基本内容的基本单位是标签
a.标签(元素)语法:
双标签:<标签名 属性名1=属性值1 属性名2=属性值2...>标签内容标签名>
b.常见标签
标题标签:h1~h6
段落标志:p
图片:img
超链接:a
"""
直接将标签名作为选择器,选择网页中所有的指定标签
a{} - 选中所有的a标签
b{} - 选中所有的b标签
a.在标签的class属性前加.作为一个选择器,选中class属性值为指定值的所有标签
.c1{} - 选中所有class属性值为c1的标签
.person{} - 选中所有class属性值为person的标签
b.将’标签名.class属性值’结构作为一个选择器,选中所有标签名为指定标签,且class属性值是指定值的标签
c.将’.class属性值1.class属性值2.class属性值3…'结构作为一个选择器,选择class属性同时为指定值的标签
在id属性值前面加#作为一个选择器,选中id属性值为指定值的标签(id属性值是唯一的)
#p1{} - 选中id属性为p1的标签
将多个独立的选择器用>连接作为一个选择器
div>.c1{} - 选中div子标签中所有class值为c1的标签
将多个独立的选择器用空格隔开作为一个选择器
BeautifulSoup(网页源代码, ‘lxml’) - 根据指定的网页源代码创建soup对象并且返回(soup对象就相当于整个网页)
1.使用soup获取标签
soup对象.select(css选择器) - 获取css选择器选中的所有标签,返回一个列表,列表中的元素是被选中的所有标签对象
soup对象.select_one(css选择器) - 获取css选择器选中的第一个标签,返回一个标签对象
2.使用标签获取标签对象
标签对象.select(css选择器) - 获取指定标签中选择器选中的所有标签
标签对象.select_one(css选择器) - 获取指定标签中选择器选中的第一个标签
3.获取标签内容和标签属性
a.获取标签内容:标签对象.text
b.获取标签属性:标签对象.attrs[属性名]