Python獲取網(wǎng)頁(yè)數(shù)據(jù)詳解流程
Requests 庫(kù)是 Python 中發(fā)起 HTTP 請(qǐng)求的庫(kù),使用非常方便簡(jiǎn)單。
發(fā)送 GET 請(qǐng)求
當(dāng)我們用瀏覽器打開(kāi)東旭藍(lán)天股票首頁(yè)時(shí),發(fā)送的最原始的請(qǐng)求就是 GET 請(qǐng)求,并傳入url參數(shù).
import requests url='http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get'
用Python requests庫(kù)的get函數(shù)得到數(shù)據(jù)并設(shè)置requests的請(qǐng)求頭.
header={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' }
得到network的參數(shù).
data={ 'cb': 'jQuery1123026726575651052076_1633873068863', 'lmt': '0', 'klt':' 101', 'fields1': 'f1,f2,f3,f7', 'fields2': 'f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65', 'ut': 'b2884a393a59ad64002292a3e90d46a5', 'secid': '0.000040', '_': '1633873068864' }
我們使用 content 屬性來(lái)獲取網(wǎng)站返回的數(shù)據(jù),并命名為sd.
sd=requests.get(url=url,headers=header,data=data).content
json庫(kù)可以自字符串或文件中解析JSON。 該庫(kù)解析JSON后將其轉(zhuǎn)為Python字典或者列表。re模塊是python獨(dú)有的匹配字符串的模塊,該模塊中提供的很多功能是基于正則表達(dá)式實(shí)現(xiàn)的,而正則表達(dá)式是對(duì)字符串進(jìn)行模糊匹配,提取自己需要的字符串部分.
import json import re text=str(sd,'utf-8') res=re.findall(r'[(](.*?)[)]',text) re=json.loads(res[0]) p=re['data']['klines']
將雜亂無(wú)章的數(shù)據(jù)排版到excel中,代碼如下:
all_list=re['data']['klines'] data_list=[] latest_price_list=[] price_limit_list=[] net_amount_list1=[] net_proportion_list1=[] net_amount_list2=[] net_proportion_list2=[] net_amount_list3=[] net_proportion_list3=[] net_amount_list4=[] net_proportion_list4=[] net_amount_list5=[] net_proportion_list5=[] for i in range(len(all_list)): data=all_list[i].split(',')[0] data_list.append(data) ##收盤(pán)價(jià) latest_price=all_list[i].split(',')[11] latest_price_list.append(latest_price) ##漲跌幅 price_limit=all_list[i].split(',')[12] price_limit_list.append(price_limit) ##主力凈流入 ####凈額 net_amount1=all_list[i].split(',')[1] net_amount_list1.append(net_amount1) ##占比 net_proportion1=all_list[i].split(',')[6] net_proportion_list1.append(net_proportion1) ##超大單凈流入 ####凈額 net_amount2=all_list[i].split(',')[5] net_amount_list2.append(net_amount2) ##占比 net_proportion2=all_list[i].split(',')[10] net_proportion_list2.append(net_proportion2) ##大單凈流入 ####凈額 net_amount3=all_list[i].split(',')[4] net_amount_list3.append(net_amount3) ##占比 net_proportion3=all_list[i].split(',')[9] net_proportion_list3.append(net_proportion3) ##中單凈流入 ####凈額 net_amount4=all_list[i].split(',')[3] net_amount_list4.append(net_amount4) ##占比 net_proportion4=all_list[i].split(',')[8] net_proportion_list4.append(net_proportion4) ##小單凈流入 ####凈額 net_amount5=all_list[i].split(',')[2] net_amount_list5.append(net_amount5) ##占比 net_proportion5=all_list[i].split(',')[7] net_proportion_list5.append(net_proportion5) #print(data_list)
import pandas as pd df=pd.DataFrame() df['日期'] = data_list df['收盤(pán)價(jià)'] = latest_price_list df['漲跌幅(%)'] = price_limit_list df['主力凈流入-凈額'] = net_amount_list1 df['主力凈流入-凈占比(%)'] = net_proportion_list1 df['超大單凈流入-凈額'] = net_amount_list2 df['超大單凈流入-凈占比(%)'] = net_proportion_list2 df['大單凈流入-凈額'] = net_amount_list3 df['大單凈流入-凈占比(%)'] = net_proportion_list3 df['中單凈流入-凈額'] = net_amount_list4 df['中單凈流入-凈占比(%)'] = net_proportion_list4 df['小單凈流入-凈額'] = net_amount_list5 df['小單凈流入-凈占比(%)'] = net_proportion_list5 df# 寫(xiě)入excel df.to_excel('東旭藍(lán)天資金流向一覽表.xlsx')
將爬取出的東旭藍(lán)天資金流向數(shù)據(jù)存到excel表中,得到表格的部分截圖如下:
到此這篇關(guān)于Python獲取網(wǎng)頁(yè)數(shù)據(jù)詳解流程的文章就介紹到這了,更多相關(guān)Python 獲取網(wǎng)頁(yè)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+webdriver自動(dòng)化環(huán)境搭建步驟詳解
在本篇文章里小編給大家分享了關(guān)于python+webdriver自動(dòng)化環(huán)境搭建的詳細(xì)步驟以及注意點(diǎn),需要的朋友們參考下。2019-06-06在Pytorch中計(jì)算卷積方法的區(qū)別詳解(conv2d的區(qū)別)
今天小編就為大家分享一篇在Pytorch中計(jì)算卷積方法的區(qū)別詳解(conv2d的區(qū)別),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01django的403/404/500錯(cuò)誤自定義頁(yè)面的配置方式
這篇文章主要介紹了django的403/404/500錯(cuò)誤自定義頁(yè)面的配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05使用C#配合ArcGIS Engine進(jìn)行地理信息系統(tǒng)開(kāi)發(fā)
這篇文章主要介紹了使用C#配合ArcGIS Engine進(jìn)行地理信息系統(tǒng)開(kāi)發(fā),ArcGIS Engine是Windows系統(tǒng)上可以讓程序員創(chuàng)建自定義的GIS桌面程序,需要的朋友可以參考下2016-02-02使用apiDoc實(shí)現(xiàn)python接口文檔編寫(xiě)
今天小編就為大家分享一篇使用apiDoc實(shí)現(xiàn)python接口文檔編寫(xiě),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11python利用winreg生成桌面路徑及實(shí)現(xiàn)掃描二維碼圖片返回相關(guān)信息
這篇文章主要介紹了python生成桌面路徑及實(shí)現(xiàn)掃描二維碼圖片返回相關(guān)信息,winreg是python的一個(gè)標(biāo)準(zhǔn)庫(kù),用來(lái)對(duì)windows注冊(cè)表的操作,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-06-06Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的代碼(JSON模塊)
這篇文章主要介紹了Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的代碼(JSON模塊),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Django表單提交后實(shí)現(xiàn)獲取相同name的不同value值
這篇文章主要介紹了Django表單提交后實(shí)現(xiàn)獲取相同name的不同value值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05