目录
问题描述
1:爬虫
2:手动获取
问题描述实验时,发现一个html的数据集,在浏览器(我用的Microsoft Edge)打开显示是EChart
数据被绘成了可视化图形
获取数据的方法
1:爬虫# 网页解析,获取数据
from bs4 import BeautifulSoup
# 正则表达式,进行文字匹配
import re
import pandas as pd
#这段是正则表达式,一般需要结合不同网页源代码和需要提取内容的位置做改变
findbody = re.compile(r'"showSymbol": true,\n "data":(.*?)]', re.S)
finditem = re.compile(r'"(.*?)"', re.S)
def main():
#要爬取的文件
baseurl = 'sys.html'
datalist = getData(baseurl)
#存储数据
saveData(datalist,savepath)
#获取数据
def getData(baseurl):
datalist = []
soup = BeautifulSoup(open(baseurl,encoding='utf-8'), "html.parser")
soup = str(soup)
data = []
body = re.findall(findbody, soup)
# 通过正则表达式查找自己需要的内容
for i in range(0,len(body)):
link = re.findall(finditem, body[i])
data.append(link)
# print(data[0][1])
# exit()
datalist.append(data)
return datalist
# 保存数据到表格
def saveData(datalist,savepath):
将datalist里面的值一列一列地存入csv文件,不用xls的原因是每次只让存255列
for k in range(len(datalist)):
ngdata = pd.read_csv('data.csv')
data = datalist[0][k]
dtaa = []
for l in range(2507):
dtaa.append(str(data[l]))
#为新列加一个名字,就可以在原有的数据上加一个新列
ngdata['new'+str(k)] = dtaa
ngdata.to_csv('data.csv',index=False)
main()
运行结果如下:
2:手动获取点击浏览器右上角的三个点,选择更多工具,继续选择开发人员工具
会出现以下界面:
慢慢往下拉就可以看见一大串数据了
可以直接选中需要的行数,粘贴复制到一个txt文件中,此时的数据有引号,逗号
利用以下python代码将txt中每一行的数据提取出来放入excel中
import re
import pandas as pd
import openpyxl
data=[]
for line in open("1.txt","r"):
pattern = re.compile('"(.*)"')
value = pattern.findall(line)
data.append(value)
data = pd.DataFrame(data)
writer = pd.ExcelWriter(r'1.xlsx')
data.to_excel(writer)
writer.save()
writer.close()
结果如下:
参考:
写入csv增加新列
不用xls的原因
爬虫代码参考
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)