网页抓取手机号(Python快速的抓取表格的思路和方法和思路分享!)
优采云 发布时间: 2021-09-12 08:12网页抓取手机号(Python快速的抓取表格的思路和方法和思路分享!)
之前在搜索vscode的快捷键时,发现一个页面以表格的形式展示了vscode的各种快捷键操作(如下图)。自从学了Python爬虫,就形成了惯性思维。当我在网页中看到什么更好,但复制起来不是很方便时,我会考虑如何用Python快速抓取它。下面简单介绍一下我的一些抢表思路和方法。
1.IE浏览器直接导出EXCLE
微软的设计还是很人性化的。以这种方式访问网页上表格中呈现的内容特别方便。我们只需要在页面上右击选择Export to EXCEL,就可以将页面上的内容导出到单元格中了。
这种方式的缺点是页面内容越多内容越慢,给人一种导出失败的错觉。除了表格中的数据,页面上的其他所有内容也会导入到EXCEL中,需要后期整理。虽然,什么都没有。技能要求。但是如果要处理大量的页面,需要一个一个的操作,还是比较麻烦2.使用Python抓取网页中的表格
接下来就是本文的重点了,我们先直接上代码。
from bs4 import BeautifulSoup import requests import pandas as pd url ='' res = requests.get(url) soup = BeautifulSoup(res.text,'lxml') tables = soup.select('table') df_list = [ ] 对于表中的表:df_list.append(pd.concat(pd.read_html(table.prettify()))) df = pd.concat(df_list) df.to_excel('vscode 快捷键 encyclopedia.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的目的,培养这种挖掘数据的思维也是非常重要的。因此,关键是我们要明确自己的目标,并根据相应的目标选择最合适的方法。
下一篇预告:下一篇文章我将介绍使用正则表达式从本地统计公报中抓取结构化数据