python獲取動態js,python獲取動態jsessionid

本文目錄一覽:

python爬蟲—爬取LOL雲頂之弈數據

本來是想爬取之後作最佳羈絆組合推算,但是遇到知識點無法消化(知識圖譜),所以暫時先不組合了,實力有限

庫的安裝

1.requests  #爬取棋子數據

2.json  #棋子數據為js動態,需使用json解析

3.BeautifulSoup

實戰前先新建個lol文件夾作為工作目錄,並創建子目錄data,用於存放數據。

1.爬取數據,新建個py文件,用於爬取雲頂數據,命名為data.py

1.1定義個req函數,方便讀取。//需設定編碼格式,否則會出現亂碼

def Re_data(url):

re = requests.get(url)

re.encoding = ‘gbk’

data = json.loads(re.text)

return data[‘data’]

1.2定義個Get函數,用於讀取數據並使用保存函數進行保存數據,保存格式為json。

def Get_data():

# 獲取數據並保存至data目錄

base_url = ”

chess = Re_data(base_url + ‘chess.js’)

race = Re_data(base_url + ‘race.js’)

job = Re_data(base_url + ‘job.js’)

equip = Re_data(base_url + ‘equip.js’)

Save_data(chess,race,job,equip)

1.3定義save函數實現讀取的數據進行文件保存,保存目錄為工作目錄下的data文件夾。

def Save_data(t_chess,t_race,t_job,t_equip):

with open(‘./data/chess.json’,’w’) as f:

json.dump(t_chess,f,indent=’\t’)

with open(‘./data/race.json’,’w’) as f:

json.dump(t_race,f,indent=’\t’)

with open(‘./data/job.json’,’w’) as f:

json.dump(t_job,f,indent=’\t’)

with open(‘./data/equip.json’,’w’) as f:

json.dump(t_equip,f,indent=’\t’)

1.4定義主函數main跑起來

if __name__ == ‘__main__’:

start = time.time()

Get_data()

print(‘運行時間:’ + str(time.time() – start) + ‘秒’)

至此,數據爬取完成。

2.種族和職業進行組合。

2.1未完成 //未完成,使用窮舉方法進行組合會出現內存不夠導致組合失敗(for循環嵌套導致數組內存超限)

//待學習,使用知識圖譜建立組合優選,可參考:

期間遇到的問題:

1.爬取棋子數據時為動態js加載,需通過json模塊的loads方法獲取

2.3層for循環嵌套數據量大,導致計算失敗,需優化計算方法。

如何用Python爬蟲抓取JS動態篩選內容

打開瀏覽器,以google chrome為例,輸入你上面的網址。

然後按F12打開調試窗口,然後嘗試勾選左邊某一個選項,馬上可以看到右邊的調試窗口有東西輸出。

找到第一個輸出的行,點擊header,可以看到每一個都是用的post方法。

所以只需要構造相應的header並post上去,就可以得到你想要的數據了。

嘗試每一個request都點開看一下

就是你要構造的數據

FormData就是你要構造的數據

把數據構造好然後使用post函數發送給網站

這個得到的是一個網頁格式的數據。

而這個發放返回的是json數據,然後編碼成dict格式 提取出數據就可以了。

python 有幾種方法可以獲取js動態源碼。 用哪種方法好

最好的方法就是使用selenium這種庫哦。簡單介紹一下selenium,這本身是一種網站自動測試的庫,所以可以模擬用戶的所有交互行為,包括輸入、點擊、拖拉、滾動等等和用戶完全相同的操作,所以也和真正打開網頁一樣,可以響應Javascript的行為,可以加載JS異步加載的網頁。selenium最好配合PhantomJS使用,這樣就沒有界面,完全自動處理哦。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/306259.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 12:00
下一篇 2025-01-02 12:00

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論