chapter.外部数据读取和存储1.3

web数据的读取和存储

互联网时代,网络上每天都会产生大量的数据,如何从这些非结构化的数据中提取有效的信息进行分析尤为重要。
1.读取HTML表格
对于HTML网页中的表格数据,使用pandas中的read_html函数就可以获取。
例:湖人球队名单
实例链接:http://nba.sports.163.com/team/1000000027/structure/
在这里插入图片描述
这里获取HTML表格中的数据。

import pandas as pd
data=pd.read_html('http://nba.sports.163.com/team/1000000027/structure/')
print(data[0])

[    号码           球员姓名    位置     身高     体重  年龄  生涯            毕业大学
0   88        马基夫-莫里斯   大前锋  2.03m  111kg  30  0年          Kansas
1   10        贾里德-杜德利   小前锋  1.98m  107kg  34  0年  Boston College
2   23        勒布朗-詹姆斯  控球后卫  2.06m  113kg  35  0年             NaN
3    7         贾维尔-麦基    中锋  2.13m  122kg  32  0年          Nevada
4   14          丹尼-格林  得分后卫  1.98m   97kg  32  0年  North Carolina
5    0         凯尔-库兹马   大前锋  2.06m  100kg  24  0年            Utah
6   30       特洛伊-丹尼尔斯  得分后卫  1.93m   90kg  28  0年             VCU
7    4       亚历克斯-卡鲁索  控球后卫  1.96m   84kg  26  0年       Texas A&M
8   28          奎因-库克  控球后卫  1.85m   81kg  27  0年            Duke
9    9          拉简-隆多  控球后卫  1.85m   81kg  34  0年        Kentucky
10  39        德怀特-霍华德    中锋  2.08m  120kg  34  0年             NaN
11   5        塔伦霍顿-塔克  得分后卫  1.93m  106kg  19  0年      Iowa State
12  11       埃弗里-布拉德利  得分后卫  1.90m   81kg  29  0年           Texas
13  21         扎克-诺维尔  得分后卫  1.96m   92kg  22  0年         Gonzaga
14  15       德马库斯-考辛斯    中锋  2.08m  122kg  29  0年        Kentucky
15   1  肯塔维奥斯-卡德维尔-波普  得分后卫  1.96m   92kg  27  0年         Georgia
16  37     科斯塔斯-阿德托昆博   大前锋  2.08m   90kg  22  0年          Dayton
17   3        安东尼-戴维斯   大前锋  2.08m  114kg  27  0年        Kentucky
18  18         迪昂-韦特斯  得分后卫  1.90m   97kg  28  0年        Syracuse
19  12        德文泰-卡考克   大前锋  2.01m  108kg  23  0年  UNC Wilmington]

返回的结果为列表结构,每一个元素相当于一个表格数据。
2.并不是所有的网络数据都存储在HTML表格中,这就需要网络爬虫来实现获取网络数据了。实例:爬取酷狗音乐排行榜
https://www.kugou.com/yy/rank/home/1-8888.html

import requests
from pandas import DataFrame
from IPython.display import display
from bs4 import BeautifulSoup
data=[]
wb_data=requests.get('https://www.kugou.com/yy/rank/home/1-8888.html')
soup=BeautifulSoup(wb_data.text,'lxml')
ranks=soup.select('span.pc_temp_num')
titles=soup.select('div.pc_temp_songlist>ul>li>a')
times=soup.select('span.pc_temp_tips_r>span')
for rank,title,time in zip(ranks,titles,times):
    a={
        '排行':rank.get_text().strip(),
        '歌手':title.get_text().split('-')[0],
        '歌曲':title.get_text().split('-')[1],
        '时长':time.get_text().strip()
        
    }
    data.append(a)
data
df=DataFrame(data)
display(df)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值