當前位置:首頁 » 編程語言 » pythonjson爬蟲

pythonjson爬蟲

發布時間: 2024-06-19 18:50:17

① 如何通過網路爬蟲獲取網站數據

這里以python為例,簡單介紹一下如何通過python網路爬蟲獲取網站數據,主要分為靜態網頁數據的爬埋山差取和動態網頁數據的爬取,實驗環境win10+python3.6+pycharm5.0,主要內容如下:

靜態網頁數據

這里的數據都嵌套在網頁源碼中,所以直接requests網頁源碼進行解析就行,下面我簡單介紹一下,這里以爬取糗事網路上的數據為例:

1.首先,打開原網頁,如下,這里假設要爬取的欄位包括昵稱、內容、好笑數和評論數:

接著查看網頁源碼,如下,可以看的出來,所有的數據都嵌套在網頁中:

2.然後針對以上網頁結構,我們就可以直接編寫爬蟲代碼,解析網頁並提取出我們需要的數據了,測試代碼如下,非常簡單,主要用到requests+BeautifulSoup組合,其中requests用於獲取網頁源碼,BeautifulSoup用於解析網頁提取數據:

點擊運行這個程序,效果如下,已經成功爬取了到我們需要的數據:

動態網頁數據

這里的數據都沒有在網頁源碼中(所以直接請求頁面是獲取不到任何數據的),大部分情況下都是存儲在一唯唯個json文件中,只有在網頁更新的時候,才會載入數據,下面我簡單介紹一下這種方式,這里以爬取人人貸上面的數據為例:

1.首先,打開原網頁,如下,這里假設要爬取的數據包括年利率,借款標題,期限,金額和進度:

接著按F12調出開發者工具,依次點擊「Network」->「XHR」,F5刷新頁面,就可以找打動態載入的json文件,如下,也就是我們需要爬彎皮取的數據:

2.然後就是根據這個json文件編寫對應代碼解析出我們需要的欄位信息,測試代碼如下,也非常簡單,主要用到requests+json組合,其中requests用於請求json文件,json用於解析json文件提取數據:

點擊運行這個程序,效果如下,已經成功爬取到我們需要的數據:

至此,我們就完成了利用python網路爬蟲來獲取網站數據。總的來說,整個過程非常簡單,python內置了許多網路爬蟲包和框架(scrapy等),可以快速獲取網站數據,非常適合初學者學習和掌握,只要你有一定的爬蟲基礎,熟悉一下上面的流程和代碼,很快就能掌握的,當然,你也可以使用現成的爬蟲軟體,像八爪魚、後羿等也都可以,網上也有相關教程和資料,非常豐富,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

② 怎麼樣python爬蟲進行此網站爬取

  • 加密的,解密方法在JS裡面可以弄出來。

  • 首先要AES解密,可以【Python:import Crypto.Cipher.AES】包,解密mode是CFB,seed是"userId:"+uid+":seed"的SHA256值,解密的key是seed[0:24],iv是seed[len(seed)-16:]。

  • 如果沒有登錄,uid就是用的"anyone",這時候的seed是"",也就是key為"61581AF471B166682A37EFE6",iv為"C8F203FCA312AAAB"。

  • 解密後文件是壓縮過的,解壓即可得到一個JSON。這部分解壓我沒仔細看他的演算法,好像是gzip,直接用【Python:import gzip】解壓有點出錯,可能沒用對或者不是這個演算法,你在研究一下。第二種投機的方法就是,可以通過【Python:import execjs】直接調用他的pako.js文件的JS的inflate()函數來解壓這塊。JS代碼混淆後看起來是非常難懂的,使用這種做法可以不用太看懂加密的演算法,效率當然寫Python實現這個解密演算法低1點咯。

  • 最後的JSON再用【Python:import demjson】解析,text的value就是文檔。

③ python鐖鉶鎶鏈鍙浠ュ共浠涔


棣栧厛錛屾垜浠闇瑕佺煡閬撲粈涔堟槸鐖鉶錛佹垜絎涓嬈″惉鍒扮埇鉶榪欎釜璇嶇殑鏃跺欙紝灝變互涓烘槸閭g嶇埇琛岀殑鏄嗚櫕錛屾兂鎯沖ソ鍙絎...鍚庢潵鎵嶇煡閬擄紝鏄涓縐嶇綉緇滀笂鐨勬暟鎹鎶撳彇宸ュ叿錛

緗戠粶鐖鉶錛堝張琚縐頒負緗戦〉銍樿洓錛岀綉緇滄満鍣ㄤ漢錛屽湪FOAF紺懼尯涓闂達紝鏇寸粡甯哥殑縐頒負緗戦〉榪介愯咃級錛屾槸涓縐嶆寜鐓т竴瀹氱殑瑙勫垯錛岃嚜鍔ㄥ湴鎶撳彇涓囩淮緗戜俊鎮鐨勭▼搴忔垨鑰呰剼鏈銆傚彟澶栦竴浜涗笉甯鎬嬌鐢ㄧ殑鍚嶅瓧榪樻湁鋩傝殎銆佽嚜鍔ㄧ儲寮曘佹ā鎷熺▼搴忔垨鑰呰爼鉶銆

鐖鉶鍙浠ュ仛浠涔堬紵
妯℃嫙嫻忚堝櫒鎵撳紑緗戦〉錛岃幏鍙栫綉欏典腑鎴戜滑鎯寵佺殑閭i儴鍒嗘暟鎹銆
浠庢妧鏈灞傞潰鏉ヨ村氨鏄錛 閫氳繃紼嬪簭妯℃嫙嫻忚堝櫒璇鋒眰絝欑偣鐨勮屼負錛屾妸絝欑偣榪斿洖鐨凥TML浠g爜/JSON鏁版嵁/浜岃繘鍒舵暟鎹(鍥劇墖銆佽嗛) 鐖鍒版湰鍦幫紝榪涜屾彁鍙栬嚜宸遍渶瑕佺殑鏁版嵁錛屽瓨鏀捐搗鏉ヤ嬌鐢ㄣ
濡傛灉浣犱粩緇嗚傚療錛屽氨涓嶉毦鍙戠幇錛屾噦鐖鉶銆佸︿範鐖鉶鐨勪漢瓚婃潵瓚婂氾紝涓鏂歸潰錛屼簰鑱旂綉鍙浠ヨ幏鍙栫殑鏁版嵁瓚婃潵瓚婂氾紝鍙︿竴鏂歸潰錛屽儚 Python榪欐牱鐨勭紪紼嬭璦鎻愪緵瓚婃潵瓚婂氱殑浼樼宸ュ叿錛岃╃埇鉶鍙樺緱綆鍗曘佸規槗涓婃墜銆
鍒╃敤鐖鉶鎴戜滑鍙浠ヨ幏鍙栧ぇ閲忕殑浠峰兼暟鎹錛屼粠鑰岃幏寰楁劅鎬цよ瘑涓涓嶈兘寰楀埌鐨勪俊鎮錛屾瘮濡傦細
鐭ヤ箮錛氱埇鍙栦紭璐ㄧ瓟妗堬紝涓轟綘絳涢夊嚭鍚勮瘽棰樹笅鏈浼樿川鐨勫唴瀹廣
娣樺疂銆佷含涓滐細鎶撳彇鍟嗗搧銆佽瘎璁哄強閿閲忔暟鎹錛屽瑰悇縐嶅晢鍝佸強鐢ㄦ埛鐨勬秷璐瑰満鏅榪涜屽垎鏋愩
瀹夊眳瀹銆侀摼瀹訛細鎶撳彇鎴誇駭涔板崠鍙婄熷敭淇℃伅錛屽垎鏋愭埧浠峰彉鍖栬秼鍔褲佸仛涓嶅悓鍖哄煙鐨勬埧浠峰垎鏋愩
鎷夊嬀緗戙佹櫤鑱旓細鐖鍙栧悇綾昏亴浣嶄俊鎮錛屽垎鏋愬悇琛屼笟浜烘墠闇奼傛儏鍐靛強鍚璧勬按騫熾
闆鐞冪綉錛氭姄鍙栭洩鐞冮珮鍥炴姤鐢ㄦ埛鐨勮屼負錛屽硅偂紲ㄥ競鍦鴻繘琛屽垎鏋愬拰棰勬祴絳夌瓑
鐖鉶鐨勫師鐞嗘槸浠涔堬紵
鍙戦佽鋒眰 > 鑾峰彇鍝嶅簲鍐呭 > 瑙f瀽鍐呭 > 淇濆瓨鏁版嵁
濡備笂鎵紺猴紝鐖鍙栨暟鎹鐨勬椂鍊欏氨鏄榪欎釜嫻佺▼錛屾槸涓嶆槸寰堢畝鍗曞憿錛熸墍浠ョ敤鎴風湅鍒扮殑嫻忚堝櫒鐨勭粨鏋滃氨鏄鐢 HTML 浠g爜鏋勬垚鐨勶紝鎴戜滑鐖鉶灝辨槸涓轟簡鑾峰彇榪欎簺鍐呭癸紝閫氳繃鍒嗘瀽鍜岃繃婊 html 浠g爜錛屼粠涓鑾峰彇鎴戜滑鎯寵佽祫婧愩

④ 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 = 'https://game.gtimg.cn/images/lol/act/img/tft/js/'培灶

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.mp(t_chess,f,indent='\t')

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

json.mp(t_race,f,indent='\t')

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

json.mp(t_job,f,indent='\t')

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

json.mp(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循環嵌套導致數組內存超限)

//待學習,使用知識圖譜建立組合優選,可參考:https://ya360.com/12447.html

期間遇到的問題:

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

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

⑤ 如何用python爬取網站數據

這里簡單介紹一下吧,以抓取網站靜態、動態2種數據為慧返拍例,實驗環境win10+python3.6+pycharm5.0,主要內容如下:

抓取網站靜態數據(數據在網頁源碼中):以糗事網路網站數據為例

1.這里假設我們抓取的數據如下,主要包括用戶昵稱、內容、好笑數和評論數這4個欄位,如下:

對應的網頁源碼如下,包含我們所需要的數據:

2.對應網頁結構,主要代碼如下,很簡單,主要用到requests+BeautifulSoup,其中requests用於請求頁面,BeautifulSoup用於解析頁面:

程序運行截圖如下,已經成功爬取到數據:

抓取網站動態數據(數據不在網頁源碼中,json等文件中):以人人貸網站數據為例

1.這里假設我們爬取的是債券數據,主要包括年利率世型、借款標題、期限、金額和進度這5個欄位信息,截圖如下:

打開網頁源碼中,可以發現數據不在網頁源碼中,按F12抓包分析時,才發現在一個json文件中,如下:

2.獲取到json文件的url後,我們就可以爬取對應數據了,這里使用的包與上面類似,因為是json文件,所以還用了json這個包(解析json),主要內容如下:

程序運行截圖如下,前羨已經成功抓取到數據:

至此,這里就介紹完了這2種數據的抓取,包括靜態數據和動態數據。總的來說,這2個示例不難,都是入門級別的爬蟲,網頁結構也比較簡單,最重要的還是要會進行抓包分析,對頁面進行分析提取,後期熟悉後,可以藉助scrapy這個框架進行數據的爬取,可以更方便一些,效率更高,當然,如果爬取的頁面比較復雜,像驗證碼、加密等,這時候就需要認真分析了,網上也有一些教程可供參考,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。

⑥ Python爬蟲如何寫

Python的爬蟲庫其實很多,像常見的urllib,requests,bs4,lxml等,初始入門爬蟲的話,可以學習一下requests和bs4(BeautifulSoup)這2個庫,比較簡單,也易學習,requests用於請求頁面,BeautifulSoup用於解析頁面,下面我以這2個庫為基礎,簡單介紹一下Python如何爬取網頁靜態數據和網頁動態數據,實驗環境win10+python3.6+pycharm5.0,主要內容如下:

Python爬取網頁靜態數據

這個就很簡單,直接根據網址請求頁面就行,這里以爬取糗事網路上的內容為例:

1.這里假設我們要爬取的文本內容如下,主要包括昵稱、內容、好笑數和評論數這4個欄位:

打開網頁源碼,對應網頁結構如下,很簡單,所有欄位內容都可以直接找到:

2.針對以上網頁結構,我們就可以編寫相關代碼來爬取網頁數據了,很簡單,先根據url地址,利用requests請求頁面,然後再利用BeautifulSoup解析數據(根據標簽和屬性定位)就行,如下:

程序運行截圖如下,已經成功爬取到數據:

Python爬取網頁動態數據

很多種情況下,網頁數據都是動態載入的,直接爬取網頁是提取不到任何數據的,這時就需要抓包分析,找到動態載入的數據,一般情況下就是一個json文件(當然,也敬鏈譽可能是其他類型的文件,像xml等),然後請求解析這個json文件,就能獲取到我們需要的數據,這里以爬取人人貸上面的散標數據為例:

1.這里假設我們爬取的數據如下,主要包括年亮段利率,借款標題,期限,金額,進度這5個欄位:

2.按F12調出開發者工具,依次點擊「Network」->「XHR」,F5刷新頁面,就可以找到動態載入的json文件,具體信息如下:

3.接著,針對以上抓包分析,我們就可以編寫相關代碼來爬取數據了,基本思路和上面的靜態網頁差不多,先利用requests請求json,然後再利用python自帶的json包解析數據就行,如下:

程序運行截圖如下,已經成功獲取到數據:

至此,我們就完成了利用python來爬取網頁數據。總的來說,整個過程很簡單,requests和BeautifulSoup對於初學者來說,非常容易學習,也易掌握,可以學習使用一下,後期熟悉後,可以學習一下scrapy爬蟲框架,可以明顯提高開發效率,非常不錯,當然,網頁中要是有加密、驗證碼等,這個就需要自己好好琢磨,研究對策了,網上也有相關教程和資料,感興趣的話,可以搜一下,希望以上分喚陸享的內容能對你上有所幫助吧,也歡迎大家評論、留言。

⑦ 怎樣用python爬取疫情數據

import requests
from bs4 import BeautifulSoup
import re
import json

# 1.發送請求,獲取疫情首頁(數據來源於丁香園)
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()

# 2.從疫情首頁提取最近一日數據
soup = BeautifulSoup(home_page, 'lxml')
script = soup.find(id='getAreaStat')
text = script.string

# 3.提取數據獲取json格式數據
json_str = re.findall(r'\[.+\]', text)[0]

# 4.把json格式轉換為python類型
last_day_corona_virus = json.loads(json_str)

# 5.以json格式保存最近一日數據
with open('data/last_day_coronavirus.json', 'w') as fp:
json.mp(last_day_corona_virus, fp, ensure_ascii=False)

熱點內容
馬嘉祺密碼1的答案是什麼 發布:2024-11-26 22:19:16 瀏覽:954
linux常用命令vi 發布:2024-11-26 22:17:40 瀏覽:4
sqlserver教材 發布:2024-11-26 22:07:21 瀏覽:632
安卓p圖工具哪個好 發布:2024-11-26 22:02:25 瀏覽:320
稅控盤密碼在哪裡改 發布:2024-11-26 21:55:54 瀏覽:611
美版安卓系統為什麼連不了網 發布:2024-11-26 21:51:36 瀏覽:613
用公司伺服器搭建網站 發布:2024-11-26 21:42:00 瀏覽:357
忘記密碼魅族手機如何清除數據 發布:2024-11-26 21:34:17 瀏覽:156
達內php視頻 發布:2024-11-26 21:32:09 瀏覽:556
編譯器分析 發布:2024-11-26 21:13:01 瀏覽:832