真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python對王者榮耀英雄皮膚進(jìn)行圖片采集~

前言

嗨嘍~大家好呀,這里是魔王吶

靖宇網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

環(huán)境使用:

  • Python 3.8

  • Pycharm

模塊使用:

  • requests ---> 數(shù)據(jù)請求模塊 需要安裝 pip install requests

  • re 正則表達(dá)式 內(nèi)置模塊 不需要安裝

  • os 文件操作模塊 內(nèi)置模塊 不需要安裝 --> 自動(dòng)創(chuàng)建文件夾 把每個(gè)英雄都自動(dòng)創(chuàng)建對應(yīng)文件

基本套路

一. 數(shù)據(jù)來源分析

  1. 確定需求, 確定采集目標(biāo)

  2. 通過開發(fā)者工具抓包分析, 分析我們想要數(shù)據(jù)內(nèi)容來自于那個(gè)url地址

  • F12 或者 鼠標(biāo)右鍵點(diǎn)擊檢查 選擇 network(網(wǎng)絡(luò)) 刷新網(wǎng)頁

  • 去分析圖片url地址是什么 ---> 選擇 Img 可以查找圖片url地址

505 表示英雄ID

2 皮膚第幾個(gè) ---> 通過皮膚名字對應(yīng)他的皮膚鏈接

想要獲取 yao 皮膚數(shù)據(jù)

  1. 向網(wǎng)址發(fā)送請求
  2. 獲取response響應(yīng)數(shù)據(jù)
  3. 提取皮膚名字
  4. 構(gòu)建 皮膚 url地址
  5. 保存數(shù)據(jù)

二. 代碼實(shí)現(xiàn)步驟

  1. 發(fā)送請求, 模擬瀏覽器對于url地址發(fā)送請求
  2. 獲取數(shù)據(jù), 獲取服務(wù)器返回響應(yīng)數(shù)據(jù)
  3. 解析數(shù)據(jù), 提取我們想要內(nèi)容, 皮膚名字
  4. 保存數(shù)據(jù), 數(shù)據(jù)保存本地

代碼

# 導(dǎo)入數(shù)據(jù)請求模塊  ---> 第三方模塊 需要 在cmd里面進(jìn)行安裝 pip install requests
import requests
# 導(dǎo)入正則模塊---> 內(nèi)置模塊 不需要安裝
import re
# 導(dǎo)入文件操作模塊---> 內(nèi)置模塊 不需要安裝
import os

# 確定網(wǎng)址
link= 'https://pvp.qq.com/web/js/herolist.json'
# 模擬偽裝瀏覽器---> 請求頭
headers= {
    # user-agent 用戶代理 表示瀏覽器基本身份標(biāo)識(shí)
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 發(fā)送請求
json_data= requests.get(url=link, headers=headers).json()
# for循環(huán)遍歷
for index in json_data:
    # 字典鍵值對取值 根據(jù)冒號左邊的內(nèi)容[鍵],提取冒號右邊的內(nèi)容[值]
    hero_id= index['ename']
    hero_name= index['cname']
    # 設(shè)定文件夾路徑 相對路徑
    file= f'img\\{hero_name}\\'
    if not os.path.exists(file):
        os.makedirs(file)
"""
    1. 發(fā)送請求, 模擬瀏覽器對于url地址發(fā)送請求
- headers 字典數(shù)據(jù)類型, 構(gòu)建完整鍵值對
- 請求頭參數(shù) 可以直接在開發(fā)者工具復(fù)制粘貼
- 使用什么請求方法, 根據(jù)開發(fā)者工具來
"""
    # 確定請求url地址
    url= f'https://pvp.qq.com/web/herodetail/{hero_id}.shtml'
    # 模擬偽裝瀏覽器---> 請求頭
    headers= {
        # user-agent 用戶代理 表示瀏覽器基本身份標(biāo)識(shí)
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 發(fā)送請求---> 200]> 響應(yīng)對象: <>表示對象 response 響應(yīng)回復(fù) 200 狀態(tài)碼 表示請求成功
    response= requests.get(url=url, headers=headers)
    # 亂碼了 怎么辦? ---> 你要根據(jù)網(wǎng)頁編碼來 response.encoding = 'gbk'
    # 自動(dòng)識(shí)別編碼
    response.encoding= response.apparent_encoding
    # 獲取數(shù)據(jù), 獲取服務(wù)器返回響應(yīng)數(shù)據(jù) 文本數(shù)據(jù) print(response.text)
"""
    解析數(shù)據(jù) re正則  會(huì)1 不會(huì)2
        re.findall()  從什么地方 去找什么數(shù)據(jù)
        從 response.text 里面 去找 data-imgname="(.*?)"> 其中 (.*?) 就是我們要的數(shù)據(jù)
"""
    title_list = re.findall('data-imgname="(.*?)">', response.text)[0]
    # 鹿靈守心&0|森&0|遇見神鹿&71|時(shí)之祈愿&94|時(shí)之愿境&42
    title_list= re.sub('&\d+', '', title_list).split('|')
    print(title_list)
    # for循環(huán)for num in range(1, 6): len() 統(tǒng)計(jì)列表元素個(gè)數(shù)
for num in range(1, len(title_list) +1):
        # 列表取值, 根據(jù)索引位置,索引位置從0開始計(jì)數(shù)
        img_name= title_list[num-1]
        # 構(gòu)建圖片url地址
        img_url= f'https://game.gtimg.cn/images/yxzj/img/skin/hero-info/{hero_id}/{hero_id}-bigskin-{num}.jpg'
        print(img_name, img_url)
        # 保存數(shù)據(jù)---> 發(fā)送請求 獲取數(shù)據(jù) 二進(jìn)制數(shù)據(jù)
        img_content= requests.get(url=img_url, headers=headers).content
        with open(file+ img_name + '.jpg', mode='wb') as f:
            f.write(img_content)

文章題目:python對王者榮耀英雄皮膚進(jìn)行圖片采集~
網(wǎng)頁URL:http://weahome.cn/article/dsoggdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部