使用python脚本抓取Excel中的网址和jira代号,然后将抓取到的jira写入到Excel中并发送邮件
时间: 2024-03-26 08:40:48 浏览: 124
好的,这是一个比较复杂的任务,需要使用Python中的一些库来实现。以下是一个大致的实现思路:
1. 使用Python中的openpyxl库读取Excel文件,并抓取网址和jira代号。
2. 使用Python中的正则表达式或者BeautifulSoup库来解析网址,获取目标jira代号。
3. 使用openpyxl库将抓取到的jira代号写入Excel文件中。
4. 使用Python中的smtplib库连接到邮件服务器,并使用email库构建邮件,将Excel文件作为附件发送。
下面是一份大致的代码实现,需要根据具体需求进行适当修改和调整:
```python
import openpyxl
import re
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders
# 邮件发送配置
mail_sender = 'sender@example.com'
mail_password = 'password'
mail_receiver = 'receiver@example.com'
mail_subject = 'Excel中的jira代号'
mail_body = '请查收附件'
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
# 抓取网址和jira代号
for row in ws.iter_rows(min_row=2, values_only=True):
url = row[0]
jira = re.findall(r'[A-Z]{2,}-\d+', url)
if jira:
row[1] = jira[0]
# 保存Excel文件
wb.save('example.xlsx')
# 发送邮件
msg = MIMEMultipart()
msg['From'] = mail_sender
msg['To'] = mail_receiver
msg['Subject'] = mail_subject
msg.attach(MIMEText(mail_body, 'plain'))
attachment = open('example.xlsx', 'rb')
p = MIMEBase('application', 'octet-stream')
p.set_payload((attachment).read())
encoders.encode_base64(p)
p.add_header('Content-Disposition', "attachment; filename= example.xlsx")
msg.attach(p)
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login(mail_sender, mail_password)
text = msg.as_string()
s.sendmail(mail_sender, mail_receiver, text)
s.quit()
```
这份代码中使用了正则表达式来抓取jira代号,如果Excel中的网址和jira代号的格式不规范,可能会出现抓取不到jira代号的情况。另外,邮件发送的配置需要根据实际情况进行修改。
阅读全文