python(模块+Excel)

发布于:2024-08-09 ⋅ 阅读:(120) ⋅ 点赞:(0)

openpyxl 

要爬取的数据部分 

# 爬取景区的天气预报
import requests
import re  # 使用正则表达式的模块

#定义函数,封装
def get_html():
    url = '要爬取的网址'
    resp = requests.get(url)
    print(resp.text)
    # 设置为中文的编码格式
    resp.encording = 'utf-8'
    return resp.text
    # print(resp.text)######用上一步代替

def parse_html(html_str):
#提取字符串数据进行解析

    a = re.findall('以span class=''……字样的格式字符串''格式字符串',html_str )###将响应结果resp.text,换为参数:html_str
    # 将提取到的数据进行打包

    lst = []
    for a, b, c, d in zip(a):  # a可以是很多歌任意
        lst.append([a, b, c, d])  # 四个变量,一个列表
    # print(lst)#不打印
    # for item in lst:
    #     print(item)
    #不遍历

将数据放入Excel 

#将爬取的数据存储到Excel中
import test2
# 数据所在模块

import openpyxl #导入Excel需要的模块
html=test2.get_html() #发出请求,得到响应结果
lst=test2.parse_html(html) #解析数据
#创建一个新的Excel工作簿
workbook=openpyxl.Workbook()
#在Excel文件中创建工作表
sheet=workbook.create_sheet('地区天气')
#向工作表中添加数据
for item in lst:
    sheet.append(item)#循环一次添加一行

workbook.save('地区天气.xlsx')

读取Excel里的数据

import openpyxl
#打开要读取的文件
workbook=openpyxl.load_workbook('地区天气.xlsx')
#选择要操作的工作表
sheet=workbook['地区天气']
#表格数据都是二维列表,先遍历的是行,后遍历列
lst=[]#存储的是行数据
for row in sheet.rows:
    sublst=[]#存储单元格数据
    for cell in row:
        sublst.append(cell.value)
    lst.append(sublst)

for item in lst :
    print(item)


网站公告

今日签到

点亮在社区的每一天
去签到