使用beautifulsoup解析网页爬取的表格信息

python 爬取静态网页步骤详解 以爬取链家租房信息为例1. 导入包和设置环境coding:utf-8 import requests import time from lxml import etree import sys reload(sys) sys.setdefaultencoding("utf-8")python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错Unico 阅读详情

 

我们爬取百度百科上一首歌的获奖记录表格:

格式如下:

想要成 2015年3月30日-东方风云榜-动感101年度金曲-《匆匆那年》 的统一格式,需要注意倒数两行的字段缺省情况。同样需要提取出缺省的字段。

借助beautiful soup解析并提取。

import re
from bs4 import BeautifulSoup


def load_file(filepath):

    soup = BeautifulSoup(open(filepath), "lxml")
    a = soup.tbody.children
    reg = re.compile(("<[^>]*>"))   # 清除html标签,提取文本
    row0 = []       # row0用于保存上一行的信息
    flag = True     # row0未初始化
    for child in a:
        row = []    # 保存表格提取结果
        if child.find('th'):    # 提取表格字段
            for value in child.children:
                st = reg.sub('', str(value))    # 正则匹配替换
                row.append((st.strip('\n')))
            row = '-'.join(row)
            print(row)
            continue
        if child.find('td'):    # 提取每一行
            while child.find('sup'):    # 先清洗可能存在的上标符号
                child.find('sup').extract()
            for value in child.children:
                st = reg.sub('', str(value))
                row.append(st.strip('\n'))
            if flag:
                flag = False
            if len(row) < len(row0):    # 与上一行比较,分析是否需要处理字段缺省的情况
                row_temp = row0[0:len(row0)-len(row)]
                for i in range(len(row)):
                    row_temp.append(row[i])
                row0 = row_temp
                row_temp = '-'.join(row_temp)   # 将列表保存的字段连接起来
                print(row_temp)
                continue
            row0 = row
            row = '-'.join(row)
            print(row)

if __name__ == '__main__':
    load_file('data/2333.txt')

效果如下:

一个参考:

表格解析

 

Python实现简单HTML表格解析的方法 主要介绍了Python实现简单HTML表格解析的方法,涉及Python基于libxml2dom模块操作html页面元素的技巧,需要的朋友可以参考下 立即下载

相关推荐

vba 修改下拉列表_Excel联想式下拉菜单制作教程II

?点击关注Excel表哥公众号上期我们分享了Excel联想式下拉菜单制作教程,可以简化大家在下拉菜单过长时的数据录入工作。文章末尾给大家提出了一个问题:为什么下拉列表数据源需要先排序?今天我们继续分享一个不用对数据源排序也能实现的下拉列表制作方法。先看最终的效果动图:今日分享难度指数:★★★★☆01创建辅助列在需要设置下拉列表的工作表中创建一列辅助列,如下图所示:在辅助列F3单元格输入下...

weixin_39593718的博客 1576

BeautifulSoup解析html表格

用BeautifulSoup解析html表格 http://www.voidcn.com/article/p-eooarkay-wa.html for idx, tr in enumerate(soup.find_all('tr')): if idx != 0: tds = tr.find_all('td') data_list.append({ '船名': tds[0].contents[0], '航次': tds[...

guxue365的专栏 3128

Unity详细介绍说明限制Unity帧率的方式

在Unity开发中,帧率(FPS,Frames per Second)是一个非常重要的表现标准,它直接影响了游戏运行的流畅度。在某些应用场景里,我们可能需要手动限制帧率。限制帧率可以减少电脑的CPU和GPU负载,使运行更加稳定,同时对于移动设备来说还能有效降低电量消耗。下面就详细介绍几种限制Unity中帧率的方式。

zjw1349547081的专栏 5436

python : BeautifulSoup 网页 table 解析范例

python BeautifulSoup 网页 table 解析范例

belldeep的专栏 3万+

Anylabeling与SAM协同:从智能标注到YOLO数据集构建的完整实践

本文详细介绍了Anylabeling与SAM协同标注的完整实践,从智能标注到YOLO数据集构建的全流程。通过结合SAM的自动分割能力和Anylabeling的交互式标注,显著提升标注效率,特别适合小样本、复杂形状和多类别标注场景。文章还提供了环境搭建、标注优化技巧以及YOLO格式转换的实用指南。

weixin_26873711的博客 461

simulink可控励磁同步电机模型分析

他励同步电机模型分析

qq_26681609的博客 5551

使用Python和BeautifulSoup轻松抓取表格数据

数据驱动的决策正在各个领域发挥重要作用。天气数据尤其重要,从农业到航空,都需要准确的天气预报。然而,许多有用的数据仅以表格形式展示在网页上,没有提供便捷的下载选项。这时,网络爬虫技术派上了用场。

ip16yun的博客 1607

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+

Python BeautifulSoup 解析具有特定 ID 的表格

仔细检查代码后,发现问题出在 find() 方法的语法上。find() 方法的第一个参数应该是一个字符串,指定要查找的标签名称。在你的代码中,你使用了 lambda 表达式来指定标签名称,这可能导致问题。在使用 Python Beautiful Soup 解析 HTML 时,我遇到了一个问题。我想获取一个具有特定 ID 的表格中的数据,但我总是得到一个 None 结果。另一个问题可能是 HTML 代码的编码方式。如果 HTML 代码不是 UTF-8 编码的,你可能会遇到解析问题。

D0126_的博客 555

【YOLOv8/v9/v10 实战 01】YOLOv8/v9/v10全系列实战对决:性能矩阵、架构拆解与2026部署指南

2026年YOLO生态已进入“战国时代”,Ultralytics YOLOv8/11/26、阿里YOLO12、清华YOLOv10、微软YOLOv9四大路线并行发展。本文基于官方文档、学术论文及实测数据,系统剖析三大核心版本(YOLOv8/v9/v10)的架构演进逻辑,构建覆盖参数量、mAP、FPS、FLOPs的完整性能矩阵。通过8组工业场景实测、全流程代码实现(训练-导出-部署)、6类硬件适配方案,解决新手选型难、进阶者优化无门、工业开发者部署低效的痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 534

YOLOv11改进 | 注意力篇 | YOLOv11引入CA注意力机制

摘要:最近关于移动网络设计的研究已经证明了通道注意力(例如,挤压和激励注意力)对于提升模型性能的显着有效性,但它们通常忽略了位置信息,而位置信息对于生成空间选择性注意力图很重要。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~3.2 在Extramodule里创建CA。在CA.py文件里添加给出的CA代码。

tsg6698的博客 2979

BeautifulSoup解析HTML表格数据(99%开发者忽略的关键细节)

掌握BeautifulSoup解析HTML表格数据的高效方法,解决网页数据提取难题。适用于爬虫开发、数据清洗等场景,详解标签定位、行列遍历与异常处理技巧,提升解析准确率。99%开发者忽略的关键细节值得收藏。

FastDebug的博客 706

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Python程序设计 网页爬虫

Python程序设计实验十三 网页爬虫头歌、第1关:爬取网页的表格信息、第2关:爬取表格中指定单元格的信息、第3关:将单元格的信息保存到列表并排序、第4关:爬取 div 标签的信息、第5关:爬取单页多个div标签的信息、第6关:爬取多个网页的多个div标签的信息、如何爬取网页数据、行标签和单元格标签、find_all函数、在用 find() 方法找到特定的标签后,想获取里面的文本,可以用 text 属性或者 string 属性。列表的操作、获取爬取多个网页、如何将信息写入文件、beautifulsoup4

weixin_58063872的博客 4152

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

读取csv文件链接、批量爬取二维码内容

在制作完二维码,并且把二维码链接识别出来保存为csv文件之后,开始爬取

SSunshaoye的博客 1045

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础

【代码】【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础。

司职在下的博客 4902

python爬取网页实时数据_数据科学必备技能:用 Python 爬取网页

原标题:数据科学必备技能:用 Python 爬取网页我作为数据科学家的第一个任务,就是做网页爬取。那时候,我对使用代码从网站上获取数据这项技术完全一无所知,它偏偏又是最有逻辑性并且最容易获得的数据来源。在几次尝试之后,网页爬取对我来说就几乎是种本能行为了。如今,它更成为了我几乎每天都要用到的少数几个技术之一。在今天的文章中,我将会用几个简单的例子,向大家展示如何爬取一个网站——比如从 Fast T...

weixin_39575937的博客 1632

没有网络怎么学网络爬虫之爬取智联招聘网python就业招聘信息存入Excel表格

没有网络可以练习网络爬虫?当然可以啦,但是必须先找个有网络的地方,打开你要爬取的网页,找的你要获取的内容,我将要在智联招聘网上获取招聘python的相关信息,如(工作名称、公司名称、薪资待遇、地址、经验、学历、公司性质、招聘人数、公司福利等) 1、爬虫前步骤 (1)找个有网的地方,打开需要爬取网页。 (2)找到需要获取的内容。 (3)保存源码到本地文件,我们没有必要全部保存,最好选取需要的部分进...

阿优乐扬的博客 1065

百度深度学习7日打卡第六期:Python小白逆袭大神 Day2-《青春有你2》选手信息爬取

百度深度学习7日打卡第六期:Python小白逆袭大神 https://aistudio.baidu.com/aistudio/course/introduce/1224 Day2-《青春有你2》选手信息爬取 这个作业主要考察BeautifulSoup以及Chrome开发者模式的使用。 使用Chrome打开网站:https://baike.baidu.com/ite...

rock4you 486

python中国大学排名爬虫写明详细步骤-【Python爬虫】从html里爬取中国大学排名...

from bs4 import BeautifulSoupimport requestsimport bs4 #bs4.element.Tag时用的上#获取网页页面HTMLdef getHTMLText(url):try:r = requests.request("get", url,timeout=30)r.raise_for_status() #如不是200...

weixin_37988176的博客 260

python+requests+BeautifulSoup实现保存二手车信息至excel

简单的操作还是老样子确定一下网页是动态的还是静态的先,在网页源码中能输入关键字查找到,说明这是静态的,那么我们接下来就可以用常规的方法对网址进行实现

flyskymood的博客 822
上一篇: 在win10系统Matlab2013b下安装libsvm
下一篇: matplotlib设置x轴文本间隔显示
梓笠
博客等级 码龄11年 10粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值