想了解世界谁最有钱吗?

维基百科有专门的网页来描述世界最有钱的人。

当然,为了快速和精确定位符合预期的结果,用Python来爬取网页并分析是一个不错的办法。

但你知道吗?Python中用于执行Web爬网的两个广泛使用的库,BeautifulSoup和Scrapy用起来很麻烦,甚至作诗说“难于上青天”。

为什么呢?因为需要从网页里找到元素标签,然后根据它们提取文本,再清洗数据。而且在这个过程中会遇到各种各样的坑。让初涉其中的同学苦恼不已。“我不就看看有哪些富豪吗?算了,还是用人眼看吧。”

有没有几行就能搞定抓取并分析的办法呢?

常用Python进行数据分析的同学可能不知道,手里使用的熟练工具Pandas却隐藏了精于数据爬取的独家绝技。本文将向您展示如何使用Pandas直接爬取表格数据的简便方法。

用Pandas爬取网页,并轻松结构化

本文将从Wikipedia Page提取世界十大亿万富翁的详细信息。(维基百科(Wikipedia),是一个基于维基技术的多语言百科全书写作计划,用多种语言编写的网络百科全书。非营利组织维基媒体基金会负责营运维基百科,接受捐赠。2018年12月,维基百科入围2018世界品牌500强。)

下面将使用read_html的Pandas库的方法读取HTML表。

import pandas as pdurl ='https://zh.wikipedia.org/wiki/The_World%27s_Billionaires'df_list = pd.read_html(url)

该脚本爬取指定链接,并将HTML表返回,并结构化到DataFrame的列表中。

真正的王者,不在于千万般闪亮动作。一个小动作就能完成其他工具库几十行的功能,Pandas,我服了!

接下来查看找到的数据总数:

len(df_list)Output:32

要访问特定的表,只需访问列表的该元素。例如,df_list[2]将返回下表:

进阶玩法一:把世界富豪们做个排名

上面只是介绍pandas的常规玩法,其实可以使用index_col参数来选择表索引的特定列。这里按第二列财富进行排名,从而实现将抓取的世界富豪排名。

例:

pd.read_html(url,index_col = 1)[2]

返回下表:

从中看到亚马逊的Jeff Bezos已经成为当仁不让的首富了,第一名了。

进阶玩法二:用自然语言描述来实现自动统计返回

当然,这个题目有点人工智能的味道,但实际并不是这么智能。呵呵,大家原谅下标题党。这个功能是利用match参数指定返回包含特定字符串或正则表达式的表的列头,从而实现返回对应列头的数据列表功能。

例:

  pd.read_html(url, match='Number and combined net worth of billionaires by year')[0].head()

是不是太神奇了!pandas如何实现的这个功能呢?看看对应原始网页大家就应该明白了。

太牛了!pandas直接抓取相对应文本标题的表格并结构化输出。

进阶玩法三:其他参数

skiprows 参数允许我们跳过起始的" n"行

header 参数可用于使指定的行作为列标题

例:

pd.read_html(url,skiprows = 3,header = 0)[0] .head()

在本文中,从了解世界富豪排名出发,学习了如何使用pandas的read_html方法轻松地从页面抓取HTML表并进行解析。随后,对read_html一些重要参数也进行讲解,借助这些参数可以进一步让我们轻松抓取所需的内容。

Pandas 不仅仅是数据分析的王者,也是爬虫世界的扫地僧啊。

- END -

文源网络,仅供学习之用。如有侵权,联系删除。往期精彩

◆  50款开源工具你都用过吗?

◆  python+C、C++混合编程的应用

◆  python网络爬虫的基本原理详解

◆  Python自动操控excel,一小时解决你一天的工作

◆  如何用Python增强Excel,减少处理复杂数据的痛苦?

python提取html表格_想知道世界谁最有钱?3行Python代码告诉你相关推荐

  1. python 提取pdf表格_用Python提取pdf文件中的表格数据

    本文作者:杨慧琳 本文编辑:周聪聪 技术总编:张学人有问题,不要怕!访问 http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx ...

  2. python监控桌面捕捉_想要远程获取对方的桌面?Python教你一招搞定!

    申明 本文章仅供学习使用 先说一下功能的实现方式: 让对方的电脑自动截图,并且通过邮件的方式发给指定邮箱 再说一下需要的包:需要下载pyautogui以及email包,下载方式为在cmd命令行下输入p ...

  3. python 提取出所有学生的序号,姓名,成绩(简单易懂,代码可以直接运行)

    python 提取出所有学生的序号,姓名,成绩(简单易懂,代码可以直接运行)(正则表达式提取) 数据如下: <tbody> <tr><td><span> ...

  4. python 提取出所有学生的序号,姓名,成绩(简单易懂,代码可以直接运行,非正则表达式)

    python 提取出所有学生的序号,姓名,成绩(简单易懂,代码可以直接运行,非正则表达式) 非正则表达式提取信息利用的是字符串的切片原理,商铺先用spilt函数将每一条<tr><\t ...

  5. python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

  6. python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...

    python如何获取word文件中某个关键字之后的表格一片春愁待酒浇.江上舟摇,楼上帘招.秋娘度与泰娘娇.风又飘飘,雨又萧萧.何日归家洗客袍?银字笙调,心字香烧.流光容易把人抛.红了樱桃,绿了芭蕉. ...

  7. 用python提取PDF表格内容保存到excel

    一 提取pdf方法介绍 任务是用python提取PDF里的表格文件到excel里面去.做为一个 学了一个周python的人来说当然像尝试一下看能不能做到,事实证明是可以的只是可能代码有点烂...... ...

  8. python怎么做表格_零基础小白怎么用Python做表格?

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件.本文用Python3!在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学 ...

  9. python提取excel表格数据

    文章目录 一.说明: 二.带着我发现的来个问题,寻找解决方法: 0.安装模块`xlrd` 1.解决哪一行是开始的行的问题: 2.解决,表格中有合并单元格的问题: 3.结合1和2的问题解决,弄个自动化识 ...

最新文章

  1. 5.Ubuntu下的GIF录制软件peek安装
  2. 添加请求头 retrofit_Python爬虫偷懒神器 — 快速构造请求头!
  3. kali之metasploit基本使用
  4. Elasticsearch的Scroll操作
  5. 服务器无线不能登录界面,Web认证无法跳转到登录页面
  6. 反向代理与Real-IP和X-Forwarded-For(转)
  7. es 调整gc_实际中进行GC调整
  8. 《Python Cookbook 3rd》笔记(4.12):不同集合上元素的迭代
  9. linux 控制台存储,技术|使用 Stratis 从命令行管理 Linux 存储
  10. JeecgBoot 2.4.3版本发布,企业级低代码平台
  11. linux监控mysql性能,MySQL 性能监控4大指标——第二部分
  12. linux mount 原文件夹,window文件夹mount挂载Linux
  13. java自带函数_java8中内置的四大核心函数式接口
  14. 突击计划——求n的阶乘
  15. 2.5. 标准路由器:Zend_Controller_Router_Rewrite
  16. 从直男审美到时尚达人,这群阿里工程师要让服饰行业换个玩法!
  17. 计算机不同用户共享文件,如何为不同账户设置共享文件的不同访问权限
  18. 小黄鸡 php,Simsimi (小黄鸡) API接口(PHP)公布,小黄鸡API接口非官方PHP版本来啦...
  19. 七大云架构设计在线绘图工具
  20. 自媒体平台大鱼号怎样开通视频原创保护,原创证明材料如何写?

热门文章

  1. centos 8 rpm yum install_关于yum不能正常使用的解决方案
  2. postgres 支持的线程数_为什么 Java 坚持多线程不选择协程?
  3. Class.forName()的作用与使用总结
  4. Ubuntu16.04 修改主机名
  5. CentOS6.7防火墙(Iptables)的开启与关闭
  6. 肝!计算机网络基础知识总结
  7. 这是一名既能打比赛,又会发论文JD AI实验室的算法工程师,CSDN博客专家
  8. 工业级路由器和家用路由器的区别_5G工业级路由器有哪些优势
  9. 二维绕任意点旋转_二维图形复合线性变换程序设计:三角形绕任意点旋转2wfhbh...
  10. java 漂亮的连接曲线_猜猜 Java 为什么不支持运算符重载?