欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python采集王者皮膚圖片實戰(zhàn)示例

 更新時間:2023年04月18日 09:27:55   作者:極客飛虎  
這篇文章主要為大家介紹了Python采集王者皮膚圖片實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

數(shù)據(jù)采集

我們上一篇介紹了,如何采集王者最低戰(zhàn)力,本文就來給大家介紹如何采集王者皮膚,買不起皮膚,當個桌面壁紙挺好的。下面,我和大家介紹如何獲取數(shù)據(jù)。

確定網(wǎng)址

我們在對王者英雄的主頁,進行了分析,我們發(fā)現(xiàn),其網(wǎng)頁地址相似,就差一個數(shù)字。

https://pvp.qq.com/web201605/herodetail/{ename}.shtml

我們可以把它當作為每個英雄的編號,我們可以從英雄列表獲取編號,不過,這里我們直接請求第三方接口數(shù)據(jù)。

獲取英雄編號

html_url ='https://www.sapi.run/hero/getHeroList.php'
datas = requests.get(html_url).json()['data']
for data in datas:
    ename = data['ename']
    cname = data['cname']
    print(ename,cname)

這段代碼中,html_url 是一個 URL,指向一個 SAPI 的 Hero 列表頁面。requests.get(html_url).json()['data'] 返回一個 JSON 對象,其中包含了 Hero 列表頁面的數(shù)據(jù)。ename 和 cname 是 JSON 對象中的兩個鍵值對,分別表示 Hero 的編號名字。

在這段代碼中,我們使用了一個 for 循環(huán)來遍歷 JSON 對象中的每一個鍵值對,并打印出它們的值。這樣就可以得到 Hero 列表頁面中所有 Hero 的編號名字

獲取皮膚名稱

我們拿到每一個英雄的編號之后,我們就可以訪問每一個英雄的主頁,我們在其主頁可以看到他們的英雄名稱和他們的英雄皮膚的地址。我們先獲取英雄皮膚的名稱。

herodetail_url = f'https://pvp.qq.com/web201605/herodetail/{ename}.shtml'
print(herodetail_url)
res = requests.get(herodetail_url,headers=headers)
res.encoding = 'gbk'
# print(res.text)
pfs = re.findall('data-imgname="(.*?)"',res.text)[0]
pfs=pfs.split('|')
print(pfs)

這段代碼中,herodetail_url 是一個 URL,指向一個 Hero 詳細頁面。requests.get(herodetail_url,headers=headers) 返回一個 JSON 對象,其中包含了 Hero 詳細頁面的數(shù)據(jù)。res.encoding = 'gbk' 設置了 JSON 對象的編碼方式為 GBK。re.findall('data-imgname="(.*?)"',res.text)[0] 使用正則表達式匹配 Hero 詳細頁面中的英雄名稱,并返回第一個匹配項。pfs 是匹配項的值,它是一個包含英雄名稱的列表。

接下來,我們對字段進行處理。

for pf in pfs:
    pf = pf.split('&')[0]
    # print(pf)
    pf_list.append(pf)
print(len(pf_list))
print(pf_list)

我們得到了這樣的數(shù)據(jù)。['正義爆轟', '地獄巖魂', '無盡征程', '寅虎·御盾'],到了這里,我們皮膚名字就獲取下來了。

獲取皮膚

pages = len(pfs)

for page in range(1,pages+1):
    pf_url = f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{page}.jpg'
    pf_url_list.append(pf_url)

這段代碼中,我們首先計算出 Hero 詳細頁面中圖片的數(shù)量,然后使用 range 函數(shù)生成從 1 到 pages 的整數(shù)序列。接下來,我們使用一個循環(huán)來遍歷這個序列,并將每個圖片的 URL 添加到 pf_url_list 列表中。

最后,我們將 pf_url_list 列表中的所有 URL 連接起來,并將它們作為參數(shù)傳遞給 requests.get() 函數(shù),以獲取 Hero 詳細頁面的數(shù)據(jù)。

到這里,我們把所有皮膚的地址獲取了下來。

保存數(shù)據(jù)

for name,url in zip(pf_list,pf_url_list):
    path = f'.//皮膚//{cname}//'
    # print(path)
    if not os.path.exists(path):
        os.mkdir(path)
    # print(cname,name,url)
    pf_save = requests.get(url,headers=headers)
    print(f"path + '{name}.jpg'")
    with open(path + f'{name}.jpg', 'wb') as f:
        f.write(pf_save.content)

這段代碼中,我們首先將 pf_list 和 pf_url_list 兩個列表進行了 zip 操作,并將結(jié)果存儲在 pf_list 和 pf_url_list 兩個變量中。然后,我們使用 os.path.exists() 函數(shù)來檢查 path 目錄是否存在,如果不存在,則使用 os.mkdir() 函數(shù)創(chuàng)建該目錄。接下來,我們使用 requests.get() 函數(shù)來獲取 pf_url_list 列表中的每個 URL,并將它們作為參數(shù)傳遞給 requests.get() 函數(shù),以獲取 pf_list 列表中的每個 URL。

最后,我們使用 with open() 語句打開 path + '{name}.jpg' 文件,并將 pf_save.content 寫入該文件中。這樣就可以將 pf_list 和 pf_url_list 中的每個 URL 保存到 path + '{name}.jpg' 文件中。

總結(jié)

這是一篇關(guān)于如何采集王者皮膚的文章,介紹了如何從英雄列表獲取編號,并使用正則表達式從網(wǎng)頁地址中提取英雄編號和名字。此外,還介紹了如何使用 requests.get() 函數(shù)從網(wǎng)頁中獲取數(shù)據(jù),以及如何將數(shù)據(jù)保存到文件中。

以上就是Python采集王者皮膚圖片實戰(zhàn)示例的詳細內(nèi)容,更多關(guān)于Python采集王者皮膚圖片的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python內(nèi)建類型float源碼學習

    Python內(nèi)建類型float源碼學習

    這篇文章主要為大家介紹了Python內(nèi)建類型float源碼學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python2和Python3中@abstractmethod使用方法

    Python2和Python3中@abstractmethod使用方法

    這篇文章主要介紹了Python2和Python3中@abstractmethod使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • python實現(xiàn)的陽歷轉(zhuǎn)陰歷(農(nóng)歷)算法

    python實現(xiàn)的陽歷轉(zhuǎn)陰歷(農(nóng)歷)算法

    這篇文章主要介紹了python實現(xiàn)的陽歷轉(zhuǎn)陰歷(農(nóng)歷)算法,需要的朋友可以參考下
    2014-04-04
  • Python的pywifi無線網(wǎng)絡庫的具體使用

    Python的pywifi無線網(wǎng)絡庫的具體使用

    pywifi是一個基于Python的用于操作無線網(wǎng)絡的庫,本文就來介紹一下pywifi的安裝及實際應用場景使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Python 解決logging功能使用過程中遇到的一個問題

    Python 解決logging功能使用過程中遇到的一個問題

    這篇文章主要介紹了Python 解決logging功能使用過程中遇到的一個問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python字典排序淺析介紹

    python字典排序淺析介紹

    在數(shù)據(jù)處理時,為了方便統(tǒng)計經(jīng)常使用字典存儲數(shù)據(jù)。python中的字典是‘鍵:值’對的可變序列。排序時可以指定根據(jù)鍵或者是值為對象進行排序。用到的函數(shù)是sorted(),需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • 使用pandas計算環(huán)比和同比的方法實例

    使用pandas計算環(huán)比和同比的方法實例

    同比和環(huán)比都是為了顯示數(shù)據(jù)的變化速度,但是基數(shù)不同,同比側(cè)重長期數(shù)據(jù)趨勢變化,環(huán)比側(cè)重于短期內(nèi)數(shù)據(jù)趨勢變化,下面這篇文章主要給大家介紹了關(guān)于如何使用pandas計算環(huán)比和同比的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • flask框架jinja2模板與模板繼承實例分析

    flask框架jinja2模板與模板繼承實例分析

    這篇文章主要介紹了flask框架jinja2模板與模板繼承,結(jié)合實例形式分析了flask框架jinja2模板的基本用法與模板繼承相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • python接口自動化測試數(shù)據(jù)和代碼分離解析

    python接口自動化測試數(shù)據(jù)和代碼分離解析

    代碼的可維護性除了代碼冗余之外還有就是數(shù)據(jù)盡量不要和代碼摻雜在一起,因為閱讀起來會非常的凌亂;數(shù)據(jù)分離能更好的增加代碼可讀性和可維護性,也能更好的二次修改使用
    2021-09-09
  • Python 數(shù)據(jù)可視化之Seaborn詳解

    Python 數(shù)據(jù)可視化之Seaborn詳解

    這篇文章主要介紹了Python數(shù)據(jù)可視化庫seaborn的使用總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11

最新評論