网页表格抓取(Python快速的抓取表格的思路和方法(4-7行))
优采云 发布时间: 2021-10-18 14:11网页表格抓取(Python快速的抓取表格的思路和方法(4-7行))
之前在搜索vscode的快捷键时,发现有一个页面,以表格的形式展示了vscode的各种快捷键操作(如下图)。自从学了Python爬虫,就形成了惯性思维。当我在网页中看到什么更好,但复制起来不是很方便时,我会考虑如何用Python快速抓取它。下面我就简单介绍一下我的一些抢表的思路和方法。
1.在IE浏览器中直接使用export EXCLE
微软的这种设计还是非常人性化的,通过这种方式访问网页表格中呈现的内容特别方便。我们只需要在页面上右击,选择Export to 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的目的,培养这种挖掘数据的思维也是非常重要的。
因此,关键是我们要明确自己的目标,并根据相应的目标选择最合适的方法。