如何抓取网页中的表格


之前,我在搜索vscode的快捷键的时候,找到一个页面是以表格的形式呈现vscode的各种快捷键操作的(如下图)。自从学了Python爬虫后,就形成了一个惯性思维,看到网页中有什么比较好的内容,但是复制起来又不是很方便的时候,就会想着如何用Python快速的抓取下来。下面,我就来简单的介绍下我的一些抓取表格的思路和方法。


1.在IE浏览器中直接使用导出EXCLE

微软的这个设计还是很人性化的,对于网页中以表格呈现的内容,以这种方式存取特别方便。我们需要做的仅仅是在页面中点击右键选择导出到EXCEL,就能把页面中的内容导出到单元格中。
这种方式的缺陷是:

  • 页面内容比较多时会比较慢,会给人导出失败的错觉
  • 除了表格中的数据,页面中其他的所有内容也会导进EXCEL,需要后续整理
  • 虽然,没任何技术要求。但是如果要处理大量页面时,需要一个个页面去操作,还是比较繁琐的

2.利用Python抓取网页中的表格

接下来,就是本文的重点了,直接先上代码。

from bs4 import BeautifulSoup
import requests
import pandas as pd
url = 'https://segmentfault.com/a/1190000007688656'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
tables = soup.select('table')
df_list = []
for table in tables:
    df_list.append(pd.concat(pd.read_html(table.prettify())))
df = pd.concat(df_list)
df.to_excel('vscode快捷键大全.xlsx')

我知道对于许多没学过编程知识的人,可能看到代码就会望而却步,我之前也是这样,因为这对于没接触过的人来说是一个相当不舒适的区域。但是,这也就是10行代码,就能完成一个简单的爬虫,重要的是这些代码是可以复用的,只需要修改传入的连接地址。
下面就简单介绍下代码的含义:

  • 主要用到三个库:requests,BeautifulSoup和pandas(1-3行)
  • 用BeautifulSoup取得table标签下的表格内容(4-7行)
  • pd.read_html直接把HTML中内容读取为DataFrame (8-11行)
    这一步是关键,pd.read_html方法省去了许多解析HTML的步骤,否则要用BeautifulSoup一个个抓取表格中内容会很繁琐。里面还用到了prettify()方法,可以把BeautifulSoup对象变成字符串,因为pd.read_html处理的是字符串对象
  • 最后就是把DataFrame导出到EXCEL(12行)

这样就完成了一个简单的抓取一个网页中所有表格的爬虫

3.关于选择方法的建议

最后,我想强调的一点是,方法不是我们最终的目的,我们只是想通过更便捷的方式达到学习内容的目的,所以不要为了追求高大上的方法而迷失了方向。
拿本文的为列,其实获得vscode快捷键操作表格的最好方法是直接在浏览器中导出到EXCEL,甚至是直接复制粘贴。这样我们就能把精力专注于学习vscode快捷键操作,而不是获取这个表格的方法。
如果,换个场景,假设这个表格的内容分散在很多很多的网页中,那我们还是需要编个爬虫,这样会更快。而且,如果是基于学习python的目的,培养这种挖掘资料的思维也是很重要的。
所以,关键我们要明确自己的目的,根据相应的目标,选择最适合的方式。

下期预告:下篇文章我将介绍运用正则表达式从地方的统计公报中抓取结构化的数据

搜索公众号:Python__R,回复vscode快捷键大全获取vscode快捷键大全.xlsl

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 33款可用来抓数据的开源爬虫软件工具 要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即...
    visiontry阅读 7,233评论 1 99
  • 关系中我一直在期望对方成为我想要的样子!如果对方不是我想要的样子,我就很痛苦!很受伤!我觉得我都为你牺牲这么多了!...
    竺子阅读 190评论 0 0
  • 不许撤谎,不许隐瞒…… 人到中年,苦逼事多,问君有几何?? 从工作来说,顺流还是逆流? 自己心中最清楚,也最有体验...
    清华秋实阅读 703评论 0 0
  • 听到小李子说她被分手了,我没有很吃惊,因为那个人对小李子我没有看到温柔。 好几个朋友一起吃饭,有熟悉的也有刚认识的...
    失踪的之诺阅读 420评论 0 0