python爬取王者_Python爬取王者荣耀所有英雄以及高清大图
爬蟲的原理:
模擬瀏覽器的行為,通過網絡請求將目標網頁抓取到本地。
使用一定的匹配規則,將目標網頁中需要的數據提取出來,把不需要的過濾掉。
根據需求,把提取出來的數據存儲到磁盤中(json、csv、excel、數據庫)。
需要安裝的庫:
requests:用來做網絡請求的。就跟瀏覽器是一樣的。安裝方式:
pip install requests
bs4:用來將請求下來的數據進行解析的。安裝方式:
pip install bs4
lxml:這個庫是用來解析html和xml格式數據的。BeautifulSoup相當于只是一個殼,底層還是要基于lxml類似的這種解析器來解析。html5lib、html.parse。也要安裝。安裝方式如下:
pip install lxml
點擊頭像進去如下:
看下黃忠
我要獲取的就是王者榮耀現在所有的88個英雄以及詳情頁英雄的皮膚,還有高清圖片。
廢話不多說,搞起!!!!
首先,搞定開頭說的前兩步,請求網絡和提取數據!
headers = {
"user-agent": '"你自己的user-agent"
}
url =“抓取網頁的目標url”
requestResult = requests.get(url, headers=headers)
resultJson = json.loads(requestResult.text)
print(type(resultJson))
heros = []
for li in resultJson:
hero = {}
hero['ename'] = li['ename']
hero['cname'] = li['cname']
hero['skin_name'] = li['skin_name']
hero['skin_name'] = str(hero['skin_name']).split('|')[::-1]
_ename = str(hero['ename'])
index = 1
smallImages = []
bigImages = []
# 獲取某個英雄的所有皮膚和高清大圖
for item in hero['skin_name']:
# url是分析得出,并且需要拼接好
singleSmallImage ='某個英雄的所有皮膚中的相對應的一個url‘
smallImages.append(singleSmallImage)
singleBigImage =‘某個英雄的高清皮膚中的相對應的一個url'
bigImages.append(singleBigImage)
hero['smallimages'] = smallImages
hero['bigimages'] = bigImages
index = index + 1
_imgurl = '這個是英雄默認皮膚的url'
hero['img'] = _imgurl
heros.append(hero)
heroTag = {'totalhero': heros}
上面用到的需要導入
import requests
我這里不需要Dom樹形結構,沒有用到BeautifulSoup
最后保存數據,這里保存為hero_json.json文件
with open('hero_json.json', 'w', encoding='utf-8') as fp:
json.dump(data, fp, ensure_ascii=False)
return 'ok'
hero_json.json文件整理:
趙云的數據
bigimages中的最后一條數據為趙云的“引擎之心”高清皮膚
smallimages為趙云的七款皮膚小圖,不看了。
手機上的效果:
這里遇到坑了,最開始獲取的所有英雄的列表數據是沒有的,最后才看到是通過JavaScript實現的動態展示。
此文用作學習,以此記錄!!!
如果此文對您有幫助,請點個贊讓更多的人看到!
總結
以上是生活随笔為你收集整理的python爬取王者_Python爬取王者荣耀所有英雄以及高清大图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux硬件通—声卡
- 下一篇: html如何让计算结果输出,3D3S怎么