AI网络爬虫:用kimi提取网页中的表格内容

一个网页中有一个很长的表格,要提取其全部内容,还有表格中的所有URL网址。

在kimi中输入提示词:

你是一个Python编程专家,要完成一个编写爬取网页表格内容的Python脚步的任务,具体步骤如下:

在F盘新建一个Excel文件:freeAPI.xlsx

打开网页https://github.com/public-apis/public-apis;

定位table标签;

在table标签内容定位tbody标签;

在tbody标签内定位tr标签;

在tr标签内容定位第1个td标签,提取其文本内容,保存到表格文件freeAPI.xlsx的第1行第1列;

在tr标签内容定位第1个td标签里面的a标签,提取其href属性值,保存到表格文件freeAPI.xlsx的第1行第6列;

在tr标签内容定位第2个td标签,提取其文本内容,保存到表格文件freeAPI.xlsx的第1行第2列;

在tr标签内容定位第3个td标签,提取其文本内容,保存到表格文件freeAPI.xlsx的第1行第3列;

在tr标签内容定位第4个td标签,提取其文本内容,保存到表格文件freeAPI.xlsx的第1行第4列;

在tr标签内容定位第5个td标签,提取其文本内容,保存到表格文件freeAPI.xlsx的第1行第5列;

循环执行以上步骤,直到所有table标签里面内容都提取完;

注意:

每一步相关信息都要输出到屏幕上

源代码:

import requests

from bs4 import BeautifulSoup

import pandas as pd

# 网页URL

url = 'https://github.com/public-apis/public-apis'

# 发送HTTP请求获取网页内容

response = requests.get(url)

web_content = response.text

# 使用BeautifulSoup解析网页

soup = BeautifulSoup(web_content, 'html.parser')

# 定位所有的table标签

tables = soup.find_all('table')

# 检查F盘是否存在freeAPI.xlsx文件,如果不存在则创建

excel_path = 'F:/freeAPI.xlsx'

df_list = [] # 用于存储DataFrame的列表

for table in tables:

# 定位tbody标签

tbody = table.find('tbody')

if tbody:

# 在tbody标签内定位所有的tr标签

rows = tbody.find_all('tr')

for row in rows:

# 在每个tr标签内定位所有的td标签

data = row.find_all('td')

if len(data) >= 5:

# 提取文本内容

extracted_data = [cell.get_text(strip=True) for cell in data[:5]]

# 将提取的数据存储为DataFrame

df = pd.DataFrame([extracted_data], columns=['Column1', 'Column2', 'Column3', 'Column4', 'Column5'])

# 将DataFrame添加到列表中

df_list.append(df)

# 输出相关信息到屏幕

print(f"Extracted data from row: {extracted_data}")

# 将列表中的所有DataFrame合并为一个DataFrame

if df_list:

combined_df = pd.concat(df_list, ignore_index=True)

# 将合并后的DataFrame写入Excel文件

combined_df.to_excel(excel_path, index=False)

print(f"Data has been successfully written to {excel_path}")

else:

print("No data found to write to Excel.")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/631276.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

控制状态流程图中的消息活动

消息是一个Stateflow对象,用于在本地或图表之间进行数据通信。从发件人图表中,您可以发送或转发邮件。在接收图表中,队列接收消息并将其保存,直到图表能够对其进行评估。 使用Stateflow运算符,您可以访问消息数据&…

[PythonWeb:Django框架]:项目初始化搭建

文章目录 pip查看安装列表安装制定Django版本初始化django项目执行 python manage.py startapp projectName 生成app应用执行 python manage.py runserver 运行web项目settings.py注入应用配置django项目页面访问地址注意:再次访问地址,返回制定页面 pip…

【ubuntu】ubuntu-18.04开机卡在Starting User Manager for UID 120....问题解决方案

错误截图 解决方案 启动系统,开机界面单击按键esc键,注意需要将鼠标定位到菜单界面,移动键盘上下键选择Advanced options for Ubuntu 进入如下菜单,选择recovery mode 回车之后会弹出如下界面,选择如下root&#xff0…

爬虫界的“闪电侠”:异步爬虫与分布式系统的实战秘籍

Hi,我是阿佑,前文给大家讲了,如何做一个合法“采蜜”的蜜蜂,有了这么个自保的能力后,阿佑今天就将和大家踏入 —— 异步爬虫 的大门! 异步爬虫大法 1. 引言1.1 爬虫框架的价值:效率与复杂度管理…

得物面试:Redis 内存碎片是什么?如何清理?

> **插:** [AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。](前言 – 床长人工智能教程 ) **坚持不懈&…

Django创建网站的地基

相关文档 1、为新网站创建一个文件夹(这里是:locallibrary) D:\django>mkdir locallibraryD:\django>cd locallibraryD:\django\locallibrary>dirVolume in drive D is 新加卷Volume Serial Number is B68C-03F7Directory of D:\dj…

基于SpringBoot设计模式之创建型设计模式·生成器模式

文章目录 介绍开始架构图样例一定义生成器定义具体生成器(HTML格式、markdown格式)实体类HTML格式生成器MarkDown格式生成器 测试样例 总结优点缺点 介绍 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。   如…

C++ | Leetcode C++题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDecodings(string s) {int n s.size();// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 &&a…

每日一题13:Pandas:方法链

一、每日一题 &#xff1b;&#xff1a;&#xff1a; 解答&#xff1a; import pandas as pddef findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:heavy_animals animals[animals[weight] > 100].sort_values(byweight, ascendingFalse)result heavy_anim…

ssm132医院住院综合服务管理系统设计与开发+vue

医院住院综合服务管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对医院住院信息管理混乱&…

低代码开发平台在城市数字化转型中的技术实现与案例分析

城市数字化转型需要政策引导、技术创新、基础设施建设、人才培养、多方合作以及安全保障等全方位的支持与助力&#xff0c;共同推动城市的数字化进程&#xff0c;提升其竞争力和可持续发展能力。 其中&#xff0c;技术创新是推动数字化转型的核心动力&#xff0c;需要不断加强…

【kubernetes】集群的二进制部署安装

目录 一、环境部署 二、部署 docker引擎 三、部署 etcd 集群 1、准备签发证书环境 1.1 master01服务器配置 1.1.1 准备cfssl证书生成工具 1.1.2 生成Etcd证书 1.1.3 创建存放etcd配置文件&#xff0c;命令文件&#xff0c;证书的目录&#xff0c;并启动etcd服务 1.1.4…

Android中使用Palette让你的页面UI优雅起来

文章目录 1. 什么是Palette2. 引入Palette3. 使用 Palette3.1 同步方式3.2 异步方式3.3 获取色调值 4. 举例4.1 布局文件 activity_palette_list.xml ⬇️4.2 Activity&#xff1a;PaletteListActivity⬇️4.3 列表Adapter&#xff1a;PaletteListAdapter ⬇️4.4 列表item布局…

数字化智能:Web3时代的物联网创新之路

引言 随着科技的不断发展&#xff0c;物联网&#xff08;IoT&#xff09;技术正在迅速普及和应用。而随着Web3时代的到来&#xff0c;物联网将迎来新的发展机遇和挑战。本文将探讨Web3时代的物联网创新之路&#xff0c;深入分析其核心技术、应用场景以及未来发展趋势。 Web3时…

kk聊天室系统源码搭建-自适应手机电脑-秒级响应-群体消息

kk聊天室系统源码搭建-自适应手机电脑-秒级响应-群体消息-单体消息 可以无限创建聊天室&#xff0c;可以把单个聊天室链接拿出来单独使用&#xff0c;消息秒级响应&#xff0c;支持设置屏蔽词。 具体仔细看视频演示&#xff0c;不提供演示&#xff0c;因为青狐资源网会员用户太…

【Linux】缓冲区

目录 一、初识缓冲区 二、用户级缓冲区 三、内核级缓冲区 四、内核级缓冲区 VS 用户级缓冲区 五、用户级缓冲区在哪里&#xff1f; 一、初识缓冲区 缓冲区是什么&#xff1f;可以简单理解成一部分内存。例如用户缓冲区(char arr[])、C标准库提供的缓冲区、操作系统提供的缓…

【Python】图形用户界面设计

1、设计并编写一个窗口程序,该窗口只有一个按钮,当用户单击时可在后台输出hello world. import tkinter as tk def on_button_click():print("hello world") # 创建主窗口 root tk.Tk() root.title("Hello World Button") # 设置窗口大小 root.geometry…

Vue的学习 —— <网络请求库Axios>

目录 前言 正文 一、Axios基本概念 二、安装Axios 三、Axios使用方法 四、向服务器发送请求 前言 在之前的开发案例中&#xff0c;我们通常直接在组件中定义数据。但在实际的项目开发中&#xff0c;我们需要从服务器获取数据。当其他用户希望访问我们自己编写的网页时&a…

区块链数据集(一)Xblock

一、Transaction Datasets Ethereum On-chain Data [Dataset] 2021-10TransactionData/Code AvailableEthereum Introduction: This is the dataset of paper “XBlock-ETH: Extracting and Exploring Blockchain Data From Ethereum”. Data / Code Paper CiteDownloads: …

vue3 自定义组件

在项目中&#xff0c;我们会遇到一些没有现成的组件&#xff0c;那这个时候我们就需要自己去写一个满足我们需求的组件。 比如&#xff0c;我需要一个上下排布&#xff0c;上面显示标题&#xff0c;下面显示内容的组件。封装完成后方便复用。 1、布局组件 我定义一个上下结构的…