您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何理解Python獲取網頁數據流程”,在日常操作中,相信很多人在如何理解Python獲取網頁數據流程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解Python獲取網頁數據流程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Requests 庫是 Python 中發起 HTTP 請求的庫,使用非常方便簡單。
發送 GET 請求
當我們用瀏覽器打開東旭藍天股票首頁時,發送的最原始的請求就是 GET 請求,并傳入url參數.
import requests url='http://push3his.eastmoney.com/api/qt/stock/fflow/daykline/get'
用Python requests庫的get函數得到數據并設置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的參數.
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 屬性來獲取網站返回的數據,并命名為sd.
sd=requests.get(url=url,headers=header,data=data).content
json庫可以自字符串或文件中解析JSON。 該庫解析JSON后將其轉為Python字典或者列表。re模塊是python獨有的匹配字符串的模塊,該模塊中提供的很多功能是基于正則表達式實現的,而正則表達式是對字符串進行模糊匹配,提取自己需要的字符串部分.
import json import re text=str(sd,'utf-8') res=re.findall(r'[(](.*?)[)]',text) re=json.loads(res[0]) p=re['data']['klines']
將雜亂無章的數據排版到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')
將爬取出的東旭藍天資金流向數據存到excel表中,得到表格的部分截圖如下:
到此,關于“如何理解Python獲取網頁數據流程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。