首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何抓取网页中的表格

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

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

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

这种方式的缺陷是:

页面内容比较多时会比较慢,会给人导出失败的错觉

除了表格中的数据,页面中其他的所有内容也会导进EXCEL,需要后续整理

虽然,没任何技术要求。但是如果要处理大量页面时,需要一个个页面去操作,还是比较繁琐的

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

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

我知道对于许多没学过编程知识的人,可能看到代码就会望而却步,我之前也是这样,因为这对于没接触过的人来说是一个相当不舒适的区域。但是,这也就是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的目的,培养这种挖掘资料的思维也是很重要的。

所以,关键我们要明确自己的目的,根据相应的目标,选择最适合的方式。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180224G0MJ7K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券