Pyhton-open/writer语法

126 阅读2分钟
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()函数向文件写入内容`