hello,大家好,今天又跟大家见面了,提到爬虫,大家都能想到什么?request?scrapy?hai'y还有什么呢?大家知不知道,pandas也有一个神奇的功能,爬数据?你此刻内心的想法yi'ding一定是这样d的?what?没逗我吧?大家一起来看一看吧!
pandas除了k可以读取Excel、csv文件还可以读取html文件,利用这个方法可以直接爬虫网页的Table表格型数据,无需敲更多的爬虫代码,简单!粗暴!
查看HTML结构,如果发现是下面这个table格式的,那直接可以上手开干 。
<table class="..." id="...">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
</tr>
<tr>...</tr>
<tr>...</tr>
...
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
下面我们来看下如何操作 。
一、使用方法
举一个例子,拿wiki百科上的各国家收入的页面抓取演示一下 。
文章插图
这个页面中有非常多的表格,符合我们的要求,直接使用read_html,它可以自动将网页的所有表格数据全部抓取下来 。代码如下:
import pandas as pd
url = 'https://en.wikipedia.org/wiki/Gross_national_income'
tables = pd.read_html(url)
这里返回的tables是一个DataFrames的列表,每个DataFrame就是网页中从上到下顺序的数据表格 。因此,可以用列表的切片tables[x]来提取网页指定的表格数据 。
比如,我们对第4个表格感兴趣,那么直接:
talbes[3]
文章插图
【用pandas爬取数据,太实用了】当然,上面表格看起来有点别扭,我们可以简单几个操作调整一下表结构 。
df = tables[3].droplevel(0, axis=1)
.rename(columns={'No.':'No', 'GDP[10]':'GDP'})
.set_index('No')
文章插图
这样看起来就好多了 。
推荐阅读
- VS Code - Vim 插件自动切换输入法
- 专家支招 腹泻时不可服用的药物
- 饮用药酒先弄清楚六件事
- 教师试用期转正申请书怎么写? 教师转正申请书
- 家里潮湿怎样彻底解决?这里有三个实用方法,任选其一轻松解决
- 常用家电选购避坑要点,牢记在心导购也无可奈何
- 新衣服上的吊牌别再扔了,它可是有大作用,可惜很多人都忽略了
- 洗脸最好用热水还是凉水?
- 天麻软胶囊的作用有哪些
- 补肾泡脚粉有用吗