import csv
import requests
import re
import time
import os
def main(page):
url = f'https://tieba.baidu.com/p/7882177660?pn={page}'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
resp = requests.get(url,headers=headers)
html = resp.text
# 评论内容
comments = re.findall('style="display:;"> (.*?)</div>',html)
# 评论用户
users = re.findall('class="p_author_name j_user_card" href=".*?" target="_blank">(.*?)</a>',html)
# 评论时间
comment_times = re.findall('楼</span><span class="tail-info">(.*?)</span><div',html)
for u,c,t in zip(users,comments,comment_times):
# 筛选数据,过滤掉异常数据
if 'img' in c or 'div' in c or len(u)>50:
continue
#写入csv数据行
csvwriter.writerow((u,t,c))
print(u,t,c)
print(f'第{page}页爬取完毕')
if __name__ == '__main__':
with open('01.csv','a',encoding='utf-8')as f:
#创建csv写入器
csvwriter = csv.writer(f)
#写入表头
csvwriter.writerow(('评论用户','评论时间','评论内容'))
#循环1-7页
for page in range(1,8): # 爬取前7页的内容
main(page)
#程序暂停2s
time.sleep(2)
open('文件名(可加路径,无路径默认路径)','权限级别只读r/只写w/追加a',文件编码方式,错误级别(可不加))
# Python3 字典
d = {key1 : value1, key2 : value2, key3 : value3 }
导入os 模块,用于创建文件目录
import os
导入 csv 模块,用于操作CSV文件
import csv
mkdir作用是创建目录
相对路径
os.mkdir("各班级成绩")
用字典存储要写入CSV文件的信息
dict1 = {'姓名': '刘一', '成绩': '100'} dict2 = {'姓名': '陈二', '成绩': '90'} dict3 = {'姓名': '张三', '成绩': '80'} dict4 = {'姓名': '李四', '成绩': '70'} dict5 = {'姓名': '王五', '成绩': '60'}
设置文件的表头,即列名
header = ['姓名', '成绩']
文件的相对路径
file_path = r'各班级成绩\1班成绩单.csv'
以自动关闭文件的方式创建文件对象
with open(file_path, 'w', encoding='utf-8', newline="") as f:
# 实例化类 DictWriter(),得到 DictWriter 对象
dw = csv.DictWriter(f, fieldnames=header)
# 写入文件的表头
dw.writeheader()
# writerow每次写入一行
dw.writerow(dict1)
dw.writerow(dict2)
dw.writerow(dict3)
dw.writerow(dict4)
dw.writerow(dict5)
————————————————————————————————————————————————————
`file = open("data.txt", "w")
file.write("Hello, World!")
file.close()`
————————————————————————————————————————————————————
generate_lines = yield 'line 1\n', 'line 2\n', 'line 3\n'
# 假设这是一个生成器函数返回的字符串列表
with open('example.txt', 'w') as f:
f.writelines(generate_lines)
——————————————————————————————————————————————————————
`with open('example.txt', 'w') as f:
print('Hello, world!', file=f) # 使用print()函数向文件写入内容`