网页中有很多人名,要批量提取出来。
先定位人名的源代码:
<a href="https://time.com/7012748/sundar-pichai-2/" class="hidden text-time-black md:block"><h3 class="leading-7 xl:text-2xl font-zilla-slab text-[1.3125rem] font-medium tracking-wide">Sundar Pichai</h3><p class="pt-2 text-center font-zilla-slab text-[1.225rem] italic leading-6 tracking-wide md:text-left">CEO, Google and Alphabet</p></a>
<a href="https://time.com/7012753/sasha-luccioni/" class="flex flex-col gap-4"><div class="relative aspect-square"><img alt="" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" src="https://api.time.com/wp-content/uploads/2024/09/TIME100-AI-2024-LEADERS_Sasha-Luccioni_RM-NEW.jpg?quality=85&w=640&h=640&crop=1"></div><div><h3 class="line-clamp-4 leading-7 text-time-black font-zilla-slab text-[1.3125rem] font-medium tracking-wide">Sasha Luccioni</h3><p class="pt-2 font-zilla-slab text-[1.225rem] italic leading-6 tracking-wide text-time-black">AI & Climate Lead, Hugging Face</p></div></a>
然后在deepseek中输入提示词:
你是一个Python编程专家,要完成一个爬取网页内容的任务,具体步骤如下:
在文件夹F:\aivideo 里面新建一个Excel文件,文件名为:TIME100AI2024.xlsx
打开网页:https://time.com/collection/time100-ai-2024/
定位class="my-12 lg:my-14"的所有div元素,在这个div元素中定位class="hidden text-time-black md:block"的a元素,提取a元素中h3元素的文本内容,写入Excel表格第1列;提取a元素中p元素的文本内容,写入Excel表格第2列;
然后在这个div元素中定位class="flex flex-col gap-4"的a元素,提取a元素中h3元素的文本内容,写入Excel表格第1列;提取a元素中p元素的文本内容,写入Excel表格第2列;
注意:每一步都要输出信息到屏幕上
好的,下面是一个完整的Python脚本,用于完成你描述的任务。这个脚本将使用requests库来获取网页内容,使用BeautifulSoup库来解析HTML,并使用openpyxl库来创建和写入Excel文件。
首先,确保你已经安装了所需的库:
pip install requests beautifulsoup4 openpyxl
然后,你可以使用以下代码来完成任务:
import os
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
# 定义文件夹路径和文件名
folder_path = r"F:\aivideo"
file_name = "TIME100AI2024.xlsx"
file_path = os.path.join(folder_path, file_name)
# 创建Excel文件
wb = Workbook()
ws = wb.active
ws.title = "TIME100AI2024"
# 设置表头
ws.append(["Title", "Description"])
# 打印信息
print("正在创建Excel文件...")
# 获取网页内容
url = "https://time.com/collection/time100-ai-2024/"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 打印信息
print("正在解析网页内容...")
# 定位所有class="my-12 lg:my-14"的div元素
main_divs = soup.find_all('div', class_='my-12 lg:my-14')
# 打印信息
print(f"找到 {len(main_divs)} 个 class='my-12 lg:my-14' 的 div 元素")
# 遍历所有找到的div元素
for main_div in main_divs:
# 打印信息
print("正在提取 class='hidden text-time-black md:block' 的 a 元素内容...")
# 定位class="hidden text-time-black md:block"的a元素
for a_tag in main_div.find_all('a', class_='hidden text-time-black md:block'):
h3_text = a_tag.find('h3').get_text(strip=True)
p_text = a_tag.find('p').get_text(strip=True)
ws.append([h3_text, p_text])
# 打印信息
print("正在提取 class='flex flex-col gap-4' 的 a 元素内容...")
# 定位class="flex flex-col gap-4"的a元素
for a_tag in main_div.find_all('a', class_='flex flex-col gap-4'):
h3_text = a_tag.find('h3').get_text(strip=True)
p_text = a_tag.find('p').get_text(strip=True)
ws.append([h3_text, p_text])
# 保存Excel文件
wb.save(file_path)
# 打印信息
print(f"Excel文件已保存到: {file_path}")
代码说明:
创建Excel文件:使用openpyxl库创建一个新的Excel文件,并设置表头。
获取网页内容:使用requests库获取网页的HTML内容。
解析网页内容:使用BeautifulSoup库解析HTML,并定位所需的元素。
提取数据:提取h3和p元素的文本内容,并将其写入Excel文件的相应列。
保存Excel文件:将数据保存到指定的文件路径。
注意事项:
确保文件夹F:\aivideo存在,否则可能会导致文件保存失败。
如果网页结构发生变化,可能需要调整代码中的选择器。
运行这个脚本后,你将在指定的文件夹中找到一个名为TIME100AI2024.xlsx的Excel文件,其中包含了提取的数据。
程序运行成功。
本文分享自 Dance with GenAI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!