溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程

發(fā)布時間:2021-10-21 12:59:30 來源:億速云 閱讀:154 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程”,在日常操作中,相信很多人在如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Requests 庫是 Python 中發(fā)起 HTTP 請求的庫,使用非常方便簡單。
發(fā)送 GET 請求
當(dāng)我們用瀏覽器打開東旭藍天股票首頁時,發(fā)送的最原始的請求就是 GET 請求,并傳入url參數(shù).

import requests
url='http://push3his.eastmoney.com/api/qt/stock/fflow/daykline/get'

用Python requests庫的get函數(shù)得到數(shù)據(jù)并設(shè)置requests的請求頭.

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 屬性來獲取網(wǎng)站返回的數(shù)據(jù),并命名為sd.

sd=requests.get(url=url,headers=header,data=data).content

json庫可以自字符串或文件中解析JSON。 該庫解析JSON后將其轉(zhuǎn)為Python字典或者列表。re模塊是python獨有的匹配字符串的模塊,該模塊中提供的很多功能是基于正則表達式實現(xiàn)的,而正則表達式是對字符串進行模糊匹配,提取自己需要的字符串部分.

import json
import re
text=str(sd,'utf-8')
res=re.findall(r'[(](.*?)[)]',text)
re=json.loads(res[0])
p=re['data']['klines']

將雜亂無章的數(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)
        ##收盤價
        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['收盤價'] = 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# 寫入excel
df.to_excel('東旭藍天資金流向一覽表.xlsx')

將爬取出的東旭藍天資金流向數(shù)據(jù)存到excel表中,得到表格的部分截圖如下:

如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程

到此,關(guān)于“如何理解Python獲取網(wǎng)頁數(shù)據(jù)流程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI