爬虫-爬取鼠标悬停显示的数据

爬虫-爬取鼠标悬停显示的数据

目录

数据介绍网页分析参数设置cookiespost参数

解析网页小结

数据介绍

以图上网页为例(https://www.tongyeyun.com/topfit/fundExponent/index,需登录账号才能看到),鼠标悬停到网页上,才能显示数据。本人对爬虫接触不多,本以为很麻烦,但是实际爬取下来发现非常简单,爬取及分析过程供大家参考。

网页分析

进入开发人员工具 - Network - Fetch/XHR,按ctrl+R 重新加载页面,点开左边的加载内容,可以看到Name为listDataForKLine的加载,点开preview可以发现里面有我们想要的数据。 点开Headers,看到数据具体请求的网址为:https://www.tongyeyun.com/tongyeyunweb/fundsExponent/listDataForKLine,这个网址点开就是从17年开始的全部数据。(这个网页同样需要登录才能打开,说明我们请求的时候需要加cookies)

参数设置

cookies

因为网页比较简单,所以暂时省略了登录步骤,直接使用手动登陆后的cookies。 继续查找Headers - Request Headers,找到cookie参数,保存下来

post参数

可以看到网页上有四个标签页,全市场/大行/中小行/非银,所以需要看看切换标签页后Network上有啥变化,可以看到,Name为listDataForKLine的连接信息出现了两次,后出现的是切换标签页后的,所以查看两个连接信息的区别,就能找到切换标签页的参数是什么。 查找后发现,两个连接的Headers里请求的网址一致,Request Headers一致,只在Form Data参数有区别,而且第一个全市场的参数是highcharts0,第二个大行是highcharts1,所以变化的参数应该就是POST中data参数。

import requests

import json

import datetime

import pandas as pd

cookie = {"tongyeyuncong":"xxxxxxxxx",

"language":"s",

"versions":"xxxxxxxxx",

"loginToken":"xxxxxxxxxx"}

feiyin_formdata = {"type":"highcharts0"} #highcharts0/1/2/3/4分别表示全市场、大行、中小行、非银

url = "https://www.tongyeyun.com/tongyeyunweb/fundsExponent/listDataForKLine"

response = requests.request("POST",url, cookies=cookie, data = feiyin_formdata)

#response = requests.get(url, cookies=cookie) 增加dataform参数,使用get函数仅能得到全市场的数据,即默认数据。

解析网页

打开数据网址发现是比较简单的json格式,解析起来比较简单,只要完成request后就可以简单解析。

re_text = json.loads(response.text) #加载response结果

feiyin_data_list = [] #采用list存储

n = len(re_text['obj']['ranges'])

#一天有四个时间点数据,将数据存储为五列:日期-时间点1-时间点2-时间点3-时间点4

for i in range(n):

day_data = re_text['obj']['ranges'][i]

datestr = day_data[5]

datestrp = datetime.datetime.strptime(datestr, '%Y-%m-%d %H:%M:%S')

day = datestrp.strftime('%Y-%m-%d') #转化为日期格式

datalist = [day] + day_data[1:5]

feiyin_data_list.append(datalist)

feiyin_data = pd.DataFrame(feiyin_data_list, columns=('日期', '08:45', '10:15', '14:30', '16:00'))

存储的dataframe数据如下:

小结

网页结构比较简单,供参考,欢迎讨论~

相关数据

怎样让前男友回心转意呢?这几招就能让他回心转意
365体育欧洲版本

怎样让前男友回心转意呢?这几招就能让他回心转意

⌛ 07-19 👁️ 9540
守护甜心共有多少集.第几季?
365bet娱乐场游戏

守护甜心共有多少集.第几季?

⌛ 08-08 👁️ 3542
多屏系统管理软件有哪些?全面解析与推荐
be365体育平台

多屏系统管理软件有哪些?全面解析与推荐

⌛ 08-17 👁️ 7217