写一个python脚本打开一个给定的exel表格其中表格表的第2列的每单元格中保存的是一个网址现要求如下:1逐行打开第2列中的网址并将网址的后三个字段保存在excel的第5列的对应行里面;2每打开一个网址就遍历当前网页中是否包含已合并字段就将当前这一行填充成绿豆沙色将当前这一行填充成红色
,若不包含,则填充成白色; (3)最后将修改后的excel表格保存。
提示:可以使用openpyxl库来操作excel表格,使用requests库来发送http请求获取网页内容,使用beautifulsoup库来解析网页内容。以下是一份可供参考的代码:
import openpyxl
import requests
from bs4 import BeautifulSoup
from openpyxl.styles import PatternFill
# 打开excel表格
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
# 定义填充色
green_fill = PatternFill("solid", fgColor="FFC125")
red_fill = PatternFill("solid", fgColor="FF0000")
white_fill = PatternFill("solid", fgColor="FFFFFF")
# 遍历第2列的每个单元格
for row in ws.iter_rows(min_row=2, min_col=2, max_col=2):
url = row[0].value
if url:
# 发送http请求获取网页内容
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
# 查找是否包含“已合并”字段
merged = soup.find(text="已合并")
# 将网址的后三个字段保存在第5列的对应行里
ws.cell(row=row[0].row, column=5, value='/'.join(url.split('/')[-3:]))
# 根据是否包含“已合并”字段填充颜色
if merged:
ws.cell(row=row[0].row, column=1).fill = green_fill
else:
ws.cell(row=row[0].row, column=1).fill = red_fill
else:
# 如果第2列单元格为空,则填充成白色
ws.cell(row=row[0].row, column=1).fill = white_fill
# 保存修改后的excel表格
wb.save('example.xlsx')
``
原文地址: https://www.cveoy.top/t/topic/frCa 著作权归作者所有。请勿转载和采集!