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

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

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

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

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

確定網(wǎng)址

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

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

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

獲取英雄編號(hào)

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 是一個(gè) URL,指向一個(gè) SAPI 的 Hero 列表頁面。requests.get(html_url).json()['data'] 返回一個(gè) JSON 對(duì)象,其中包含了 Hero 列表頁面的數(shù)據(jù)。ename 和 cname 是 JSON 對(duì)象中的兩個(gè)鍵值對(duì),分別表示 Hero 的編號(hào)名字

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

獲取皮膚名稱

我們拿到每一個(gè)英雄的編號(hào)之后,我們就可以訪問每一個(gè)英雄的主頁,我們?cè)谄渲黜摽梢钥吹剿麄兊挠⑿勖Q和他們的英雄皮膚的地址。我們先獲取英雄皮膚的名稱。

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

接下來,我們對(duì)字段進(jìn)行處理。

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)

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

最后,我們將 pf_url_list 列表中的所有 URL 連接起來,并將它們作為參數(shù)傳遞給 requests.get() 函數(shù),以獲取 Hero 詳細(xì)頁面的數(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 兩個(gè)列表進(jìn)行了 zip 操作,并將結(jié)果存儲(chǔ)在 pf_list 和 pf_url_list 兩個(gè)變量中。然后,我們使用 os.path.exists() 函數(shù)來檢查 path 目錄是否存在,如果不存在,則使用 os.mkdir() 函數(shù)創(chuàng)建該目錄。接下來,我們使用 requests.get() 函數(shù)來獲取 pf_url_list 列表中的每個(gè) URL,并將它們作為參數(shù)傳遞給 requests.get() 函數(shù),以獲取 pf_list 列表中的每個(gè) URL。

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

總結(jié)

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

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

相關(guān)文章

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

    Python內(nèi)建類型float源碼學(xué)習(xí)

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

    Python2和Python3中@abstractmethod使用方法

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

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

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

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

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

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

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

    python字典排序淺析介紹

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

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

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

    flask框架jinja2模板與模板繼承實(shí)例分析

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

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

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

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

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

最新評(píng)論