AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


AI爬取网页表格内容保存为excel
发布日期:2024-10-09 20:35:35 浏览次数: 1574 来源:Dance with GenAI


任务:网页上的表格内容下载保存为excel表格

在deepseek中输入提示词:

你是一个Python编程专家,写一个网页爬取的脚本,完成任务如下:

在F盘新建一个excel表格文件:Amplifypartnersportfolio.xlsx

打开网页:https://www.amplifypartners.com/portfolio,

定位所有的role="listitem"的div元素,在div元素中定位class="mob-name"的div标签,提取其内容,写入excel表格的第1列;

定位class="copy-wr"的div标签,提取其中<p>标签的文本内容,写入excel表格的第2列;

定位fs-cmsfilter-field="status"的div标签,提取其内容,写入excel表格的第3列;

定位class="mob-link"的div标签,提取其内容,写入excel表格的第4列;

定位第1个class="flex-vertical gap-4"的div标签, 找到所有的<p>标签, 提取每个 <p> 标签中的文本内容,过滤掉不需要的文本:“TEAM”和空字符串,然后写入excel表格的第5列;

定位第2个class="flex-vertical gap-4"的div标签, 找到所有的<p>标签, 提取每个 <p> 标签中的文本内容,过滤掉不需要的文本:“Milestones”和空字符串,然后写入excel表格的第6列;

定位第3个class="flex-vertical gap-4"的div标签, 找到所有的<p>标签, 提取每个 <p> 标签中的文本内容,过滤掉不需要的文本:“Articles”和空字符串,然后写入excel表格的第6列;

注意:每一步都要输出信息到屏幕上

Deepseek给出的Python源代码:

import requests

from bs4 import BeautifulSoup

import openpyxl

# 创建一个新的Excel工作簿

workbook = openpyxl.Workbook()

sheet = workbook.active

sheet.title = "Amplify Partners Portfolio"

# 设置表头

sheet['A1'] = 'Name'

sheet['B1'] = 'Location'

sheet['C1'] = 'Status'

sheet['D1'] = 'Link'

sheet['E1'] = 'Team'

sheet['F1'] = 'Milestones'

sheet['G1'] = 'Articles'

# 获取网页内容

url = 'https://www.amplifypartners.com/portfolio'

response = requests.get(url)

soup = BeautifulSoup(response.content, 'html.parser')

# 定位所有的role="listitem"的div元素

list_items = soup.find_all('div', role='listitem')

row = 2 # 从第二行开始写入数据

for item in list_items:

try:

# 提取class="mob-name"的div标签内容

name_div = item.find('div', class_='mob-name')

name = name_div.text.strip() if name_div else ''

print(f"Extracted Name: {name}")

sheet[f'A{row}'] = name

# 提取class="copy-wr"的div标签中<p>标签的文本内容

location_div = item.find('div', class_='copy-wr')

location = location_div.find('p').text.strip() if location_div and location_div.find('p') else ''

print(f"Extracted Location: {location}")

sheet[f'B{row}'] = location

# 提取fs-cmsfilter-field="status"的div标签内容

status_div = item.find('div', {'fs-cmsfilter-field': 'status'})

status = status_div.text.strip() if status_div else ''

print(f"Extracted Status: {status}")

sheet[f'C{row}'] = status

# 提取class="mob-link"的div标签内容

link_div = item.find('div', class_='mob-link')

link = link_div.text.strip() if link_div else ''

print(f"Extracted Link: {link}")

sheet[f'D{row}'] = link

# 定位第1个class="flex-vertical gap-4"的div标签

team_div = item.find('div', class_='flex-vertical gap-4')

if team_div:

team_members = [p.text.strip() for p in team_div.find_all('p') if p.text.strip() not in ['TEAM', '']]

team_str = ', '.join(team_members)

print(f"Extracted Team: {team_str}")

sheet[f'E{row}'] = team_str

# 定位第2个class="flex-vertical gap-4"的div标签

milestones_div = item.find_all('div', class_='flex-vertical gap-4')[1] if len(item.find_all('div', class_='flex-vertical gap-4')) > 1 else None

if milestones_div:

milestones = [p.text.strip() for p in milestones_div.find_all('p') if p.text.strip() not in ['Milestones', '']]

milestones_str = ', '.join(milestones)

print(f"Extracted Milestones: {milestones_str}")

sheet[f'F{row}'] = milestones_str

# 定位第3个class="flex-vertical gap-4"的div标签

articles_div = item.find_all('div', class_='flex-vertical gap-4')[2] if len(item.find_all('div', class_='flex-vertical gap-4')) > 2 else None

if articles_div:

articles = [p.text.strip() for p in articles_div.find_all('p') if p.text.strip() not in ['Articles', '']]

articles_str = ', '.join(articles)

print(f"Extracted Articles: {articles_str}")

sheet[f'G{row}'] = articles_str

row += 1

except Exception as e:

print(f"Error processing item: {e}")

# 保存Excel文件

workbook.save('F:/Amplifypartnersportfolio.xlsx')

print("Data saved to Amplifypartnersportfolio.xlsx")

创建Excel工作簿: 使用 openpyxl 创建一个新的Excel工作簿,并设置表头。

获取网页内容: 使用 requests 库获取网页内容,并使用 BeautifulSoup 解析HTML。

定位和提取数据: 使用 BeautifulSoup 的 find 和 find_all 方法定位和提取所需的数据。

写入Excel: 将提取的数据写入Excel表格的相应列。

保存Excel文件: 将工作簿保存到指定路径。

运行此脚本后,你将在F盘根目录下找到 Amplifypartnersportfolio.xlsx 文件,其中包含提取的数据。

爬取成功:



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询