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

Python采集王者最低戰(zhàn)力信息實(shí)戰(zhàn)示例

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

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

??確定網(wǎng)址

王者新賽季馬上就要開(kāi)始了,大家都開(kāi)始沖榜了,準(zhǔn)備拿一個(gè)小省標(biāo),那么,本文,就來(lái)練習(xí)獲取各地最低戰(zhàn)力的爬蟲(chóng)采集實(shí)戰(zhàn)。

確定好我們的目標(biāo)網(wǎng)址之后,我們要找到我們需要的數(shù)據(jù)源,通過(guò)開(kāi)發(fā)者工具分析,我們不難發(fā)現(xiàn)其數(shù)據(jù)地址。

請(qǐng)求URL:

https://www.sapi.run/hero/select.php

請(qǐng)求方式:

  • GET

參數(shù):

參數(shù)名必選類型說(shuō)明
herostring英雄名
typestring選aqq、awx、iqq、iwx

請(qǐng)求示例

https://www.sapi.run/hero/select.php?hero=孫悟空&type=aqq

返回示例

{
  "code": 200,
  "data": {
    "uid": "167",
    "name": "孫悟空",
    "alias": "齊天大圣-孫悟空",
    "platform": "安卓-扣扣區(qū)",
    "photo": "https://game.gtimg.cn/images/yxzj/img201606/heroimg/167/167.jpg",
    "area": "武強(qiáng)縣",
    "areaPower": "3693",
    "city": "潮州市",
    "cityPower": "5501",
    "province": "天津市",
    "provincePower": "7274",
    "guobiao": "11404",
    "stamp": "1654640093",
    "updatetime": "2022/06/08 06:14:53",
    "clientIP": "119.0.0.126"
  },
  "msg": " "
}

下面,我們開(kāi)始寫(xiě)代碼。

??獲取數(shù)據(jù)

第一步,發(fā)送請(qǐng)求,獲得數(shù)據(jù)。

import requests
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}
hero_url = 'https://pvp.qq.com/web201605/herolist.shtml'
response = requests.get(url=hero_url, headers=headers)

這段代碼中,我們使用 Python 的 requests 模塊發(fā)送了一個(gè) GET 請(qǐng)求,請(qǐng)求的 URL 為 https://pvp.qq.com/web201605/herolist.shtml,并且使用了 headers 參數(shù)來(lái)設(shè)置請(qǐng)求頭信息。請(qǐng)求頭信息包括了 user-agent 字段,用于指定瀏覽器的 User-Agent 信息。

請(qǐng)求返回的結(jié)果是一個(gè) Response 對(duì)象,我們可以使用 response.text 屬性來(lái)獲取請(qǐng)求的響應(yīng)內(nèi)容。在這個(gè)例子中,我們使用了 response.json() 方法來(lái)將響應(yīng)內(nèi)容轉(zhuǎn)換為 JSON 格式,并將其存儲(chǔ)在 response.text 屬性中。

response.encoding='gbk'
heros = re.findall('alt=".*?">(.*?)</a>',response.text)[0:93]

這段代碼中,我們使用 Python 的 re 模塊中的 findall() 函數(shù)來(lái)查找 JSONP 回調(diào)函數(shù)的參數(shù)。findall() 函數(shù)可以返回一個(gè)列表,其中包含了所有匹配的子字符串。

在這個(gè)例子中,我們使用 findall() 函數(shù)來(lái)查找 JSONP 回調(diào)函數(shù)的參數(shù),并將其存儲(chǔ)在 response.text 變量中。然后,我們使用 [0:93] 來(lái)獲取第一個(gè)匹配的子字符串,并將其存儲(chǔ)在 heros 變量中。

需要注意的是,findall() 函數(shù)返回的子字符串列表中可能包含多個(gè)匹配的子字符串,因此我們需要使用 [0:93] 來(lái)獲取第一個(gè)匹配的子字符串。

??解析數(shù)據(jù)

我們發(fā)現(xiàn),我們得到了這樣英雄名字的數(shù)據(jù),下面,我們就可以構(gòu)建url,獲取戰(zhàn)力信息。

for hero in heros:
    print(hero)
    url = f'https://www.sapi.run/hero/select.php?hero={hero}&amp;type=qq'
    res = requests.get(url)
    data = res.json()['data']
    name = data['name']
    area = data['area']
    areaPower= data['areaPower']
    city = data['city']
    cityPower = data['cityPower']
    province= data['province']
    provincePower = data['provincePower']
    platform= data['platform']
    updatetime = data['updatetime']

這段代碼中,我們使用 Python 的 requests 模塊發(fā)送了一個(gè) GET 請(qǐng)求,請(qǐng)求的 URL 為 https://www.sapi.run/hero/select.php?hero={hero}&type=qq,并且使用了 json() 方法將響應(yīng)內(nèi)容轉(zhuǎn)換為 JSON 格式,并將其存儲(chǔ)在 res.json() 變量中。

請(qǐng)求返回的結(jié)果是一個(gè) Response 對(duì)象,我們可以使用 response.json() 方法將響應(yīng)內(nèi)容轉(zhuǎn)換為 JSON 格式,并將其存儲(chǔ)在 res.json() 變量中。

在這個(gè)例子中,我們使用了 res.json() 變量來(lái)獲取響應(yīng)內(nèi)容,并將其存儲(chǔ)在 data 變量中。然后,我們使用 name 變量獲取了英雄名稱,使用 area 變量獲取了區(qū)域名字,使用 areaPower 變量獲取了區(qū)域戰(zhàn)力,使用 city 變量獲取了市,使用 cityPower 變量獲取了市戰(zhàn)力,使用 province 變量獲取了省份,使用 provincePower 變量獲取了省份戰(zhàn)力,使用 platform 變量獲取了平臺(tái),使用 updatetime 變量獲取了更新時(shí)間。

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

dit = {
    '英雄名稱':name,
    '服務(wù)區(qū)':platform,
    '更新時(shí)間': updatetime,
    '銅牌區(qū)域':area,
    '銅牌分?jǐn)?shù)': areaPower,
    '銀牌區(qū)域':city,
    '銀牌分?jǐn)?shù)': cityPower,
    '金牌區(qū)域':province,
    '金牌分?jǐn)?shù)':provincePower ,
}

這段代碼是一個(gè) Python 代碼片段,它定義了一個(gè)字典,其中包含了一些英雄的信息,包括英雄名稱、服務(wù)區(qū)、更新時(shí)間、銅牌區(qū)域、銅牌分?jǐn)?shù)、銀牌區(qū)域、銀牌分?jǐn)?shù)、金牌區(qū)域、金牌分?jǐn)?shù)等。

下面就是數(shù)據(jù)的寫(xiě)入了。其實(shí),把字典數(shù)值寫(xiě)入到csv文件里面,特別簡(jiǎn)單,只需呀四行代碼就可以實(shí)現(xiàn)。

f = open('最低戰(zhàn)力.csv', mode='a', encoding='utf-8_sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['英雄名稱', '服務(wù)區(qū)', '更新時(shí)間', '銅牌區(qū)域', '銅牌分?jǐn)?shù)',
                                           '銀牌區(qū)域', '銀牌分?jǐn)?shù)', '金牌區(qū)域','金牌分?jǐn)?shù)'])
csv_writer.writeheader()

這段代碼打開(kāi)了一個(gè)名為 '最低戰(zhàn)力.csv' 的文件,并將其以追加模式打開(kāi)。它還指定了文件的編碼為 UTF-8 和行結(jié)束符為空字符串(newline='')。

然后,代碼創(chuàng)建了一個(gè) csv.DictWriter 對(duì)象,并將其與文件對(duì)象關(guān)聯(lián)起來(lái)。fieldnames 參數(shù)指定了字典中的鍵和值的名稱。

接下來(lái),代碼調(diào)用 writeheader() 方法來(lái)寫(xiě)入表頭。這個(gè)方法將字典中的鍵值對(duì)寫(xiě)入文件中,并將其作為表頭。

寫(xiě)入字典數(shù)值。

csv_writer.writerow(dit)

這時(shí)候,我們就會(huì)在文件夾里面找到最低戰(zhàn)力的csv文件,我們打開(kāi)看看效果。

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

相關(guān)文章

  • Python3.9新特性詳解

    Python3.9新特性詳解

    這篇文章主要介紹了Python3.9新特性詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python selenium如何設(shè)置等待時(shí)間

    Python selenium如何設(shè)置等待時(shí)間

    這篇文章主要為大家詳細(xì)介紹了Python selenium如何設(shè)置等待時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Python爬蟲(chóng)實(shí)例爬取網(wǎng)站搞笑段子

    Python爬蟲(chóng)實(shí)例爬取網(wǎng)站搞笑段子

    這篇文章主要介紹了Python爬蟲(chóng)實(shí)例爬取網(wǎng)站搞笑段子,具有一定參考價(jià)值,看完了代碼不妨看看段子,希望大家每天開(kāi)心。
    2017-11-11
  • pandas groupby分組對(duì)象的組內(nèi)排序解決方案

    pandas groupby分組對(duì)象的組內(nèi)排序解決方案

    這篇文章主要介紹了pandas groupby分組對(duì)象的組內(nèi)排序解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python利用后綴表達(dá)式實(shí)現(xiàn)計(jì)算器功能

    python利用后綴表達(dá)式實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了python利用后綴表達(dá)式實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式

    pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式

    今天小編就為大家分享一篇pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python+OpenCv制作證件圖片生成器的操作方法

    Python+OpenCv制作證件圖片生成器的操作方法

    這篇文章主要介紹了Python+OpenCv制作證件圖片生成器的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python協(xié)程asyncio異步編程筆記分享

    Python協(xié)程asyncio異步編程筆記分享

    這篇文章主要介紹了Python協(xié)程asyncio異步編程筆記分享,基于async & await關(guān)鍵字的協(xié)程可以實(shí)現(xiàn)異步編程,這也是目前python異步相關(guān)的主流技術(shù)
    2021-09-09
  • Python制作爬蟲(chóng)抓取美女圖

    Python制作爬蟲(chóng)抓取美女圖

    作為一個(gè)屌絲程序猿,平時(shí)沒(méi)事就逛逛美女圖,過(guò)過(guò)眼癮,當(dāng)然作為一個(gè)技術(shù)男,就直接打開(kāi)頁(yè)面看的話,多l(xiāng)ow啊,所以就有了這篇文章,哼,抓取下來(lái)到本地慢慢看!
    2016-01-01
  • python matplotlib實(shí)現(xiàn)將圖例放在圖外

    python matplotlib實(shí)現(xiàn)將圖例放在圖外

    這篇文章主要介紹了python matplotlib實(shí)現(xiàn)將圖例放在圖外,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論