写一个python脚本打开一个给定的exel表格其中表格表的第2列的每单元格中保存的是一个网址现要求如下:1逐行打开第2列中的网址并将网址的后三个字段保存在excel的第5列的对应行里面;2每打开一个网址就遍历当前网页中是否包含已合并字段如果包含就在这个excel的第6列对应行里面填充一个Yes并将当前这一行填充成豆沙色否则就第6列对应行里面填充一个No并将当前这一行填充成红色
由于没有给出具体的excel文件和网址,以下代码只是一个大致的框架,需要根据实际情况进行修改和完善。
import openpyxl
import requests
from bs4 import BeautifulSoup
from openpyxl.styles import PatternFill
# 打开excel文件
wb = openpyxl.load_workbook('文件名.xlsx')
ws = wb.active
# 定义填充颜色
red_fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type='solid')
yellow_fill = PatternFill(start_color='FFE599', end_color='FFE599', fill_type='solid')
# 遍历第2列中的网址
for row in ws.iter_rows(min_row=2, min_col=2, max_col=2):
url = row[0].value
# 获取网页内容
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
# 获取需要保存的信息
info = soup.find_all('xxx')[0].text # 假设需要保存的信息在xxx标签中
# 将信息保存到第5列
ws.cell(row=row[0].row, column=5).value = info[-3:]
# 判断是否包含“已合并”字段
if '已合并' in res.text:
ws.cell(row=row[0].row, column=6).value = 'Yes'
ws.cell(row=row[0].row, column=6).fill = yellow_fill
else:
ws.cell(row=row[0].row, column=6).value = 'No'
ws.cell(row=row[0].row, column=6).fill = red_fill
# 保存修改后的excel文件
wb.save('文件名.xlsx')
``
原文地址: https://www.cveoy.top/t/topic/frBK 著作权归作者所有。请勿转载和采集!