php网页抓取标题(谈及Pandas—超好用的Groupby详解数据分析—Merge数据财经数据)
优采云 发布时间: 2021-10-27 20:18php网页抓取标题(谈及Pandas—超好用的Groupby详解数据分析—Merge数据财经数据)
说到Pandas的read.xxx系列函数,大家第一反应就会想到比较常用的pd.read_csv()和pd.read_excel()。大多数人估计他们从未使用过 pd.read_html() 函数。
虽然低调,但功能却非常强大。用来抓取Table数据的时候,简直就是神器。下面就来详细介绍一下。
在浏览网页时,经常会看到这样的数据表,例如:
电影票房数据
世界大学排名数据
财务数据
如果查看网页的 HTML 结构(Chrome 浏览器 F12),您会发现它们有一个共同的特点,不仅是表格,表格结构中显示的表格数据也一样。一般的网页页面结构如下
...
...
...
...
...
...
...
对于网页结构相似的表格类型数据,pd.read_html() 就派上用场了。它可以抓取网页上的所有表格,并以DataFrame的形式以列表形式返回。具体流程是:
先介绍一下read_html的一些主要参数
读_html
接下来以爬取新浪财经的重仓资金为例。网址是:
这部分共有 6 页。点击不同的页码可以发现请求的URL主要是因为p参数在变化,p=n代表第n页,所以for循环可以遍历所有的URL。了解了URL的变化规则后,就可以愉快的爬取数据了,上传代码
import pandas as pd
df = pd.DataFrame()
for i in range(6):
url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={page}'.format(page=i+1)
df = pd.concat([df,pd.read_html(url)[0]])
print("第{page}页完成~".format(page=i+1))
df.to_csv('./data.csv', encoding='utf-8', index=0)
整个过程不需要使用正则表达式或者xpath等工具,几行代码就可以把数据爬下来,是不是超级无敌方便?
以后爬取一些小数据的时候,只要遇到这种Table类型的表,就可以直接牺牲read_html神器了。当别人还在思考规律性和xpath怎么写的时候,你已经爬取了数据。考虑一下。非常舒服!
相关 文章:
提高数据的价值!一起来看看Pandas中Pandas数据处理风格的三种风格——map、apply、applymap解释Pandas数据分析——超级好用Groupby解释Pandas数据分析——合并数据拼接图解解释Pandas数据处理——有趣的时间序列数据Pandas数据处理-常用函数盘点(上) Pandas 数据处理-常用函数盘点(下) Pandas性能优化方法,提速百倍,让你的Pandas飞起来!
原创这并不容易。如果你觉得有用,希望你能给我点个赞。谢谢老铁!