溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何爬取NBA虎撲球員數(shù)據(jù)

發(fā)布時(shí)間:2021-10-26 09:38:56 來源:億速云 閱讀:294 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹Python如何爬取NBA虎撲球員數(shù)據(jù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

虎撲是一個(gè)認(rèn)真而有趣的社區(qū),每天有眾多JRs在虎撲分享自己對(duì)籃球、足球、游戲電競、運(yùn)動(dòng)裝備、影視、汽車、數(shù)碼、情感等一切人和事的見解,熱鬧、真實(shí)、有溫度。

受害者地址

https://nba.hupu.com/stats/players

Python如何爬取NBA虎撲球員數(shù)據(jù)

本文知識(shí)點(diǎn):

  • 系統(tǒng)分析網(wǎng)頁性質(zhì)

  • 結(jié)構(gòu)化的數(shù)據(jù)解析

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

環(huán)境介紹:

  • python 3.6

  • pycharm

  • requests

  • csv

爬蟲案例的一般步驟

  • 1.確定url地址(網(wǎng)頁分析) 完成一半

  • 2.發(fā)送網(wǎng)絡(luò)請(qǐng)求 requests(js\html\css)

  • 3.數(shù)據(jù)解析(篩選數(shù)據(jù))

  • 4.保存數(shù)據(jù)(本地文件\數(shù)據(jù)庫)

部分代碼

導(dǎo)入工具

import requests  # 第三方工具
import parsel  # 數(shù)據(jù)解析工具  (css\正則表達(dá)式\xpath)
import csv

確定url地址(網(wǎng)頁分析) 完成一半 (靜態(tài)網(wǎng)頁\動(dòng)態(tài)網(wǎng)頁)

url = 'https://nba.hupu.com/stats/players/pts/{}'.format(page)

發(fā)送網(wǎng)絡(luò)請(qǐng)求 requests(js\html\css)

response = requests.get(url=url)
html_data = response.text

數(shù)據(jù)解析(篩選數(shù)據(jù))

selector = parsel.Selector(html_data)
    trs = selector.xpath('//tbody/tr[not(@class="color_font1 bg_a")]')
    for tr in trs:
        rank = tr.xpath('./td[1]/text()').get()  # 排名
        player = tr.xpath('./td[2]/a/text()').get()  # 球員
        team = tr.xpath('./td[3]/a/text()').get()  # 球隊(duì)
        score = tr.xpath('./td[4]/text()').get()  # 得分
        hit_shot = tr.xpath('./td[5]/text()').get()  # 命中-出手
        hit_rate = tr.xpath('./td[6]/text()').get()  # 命中率
        hit_three = tr.xpath('./td[7]/text()').get()  # 命中-三分
        three_rate = tr.xpath('./td[8]/text()').get()  # 三分命中率
        hit_penalty = tr.xpath('./td[9]/text()').get()  # 命中-罰球
        penalty_rate = tr.xpath('./td[10]/text()').get()  # 罰球命中率
        session = tr.xpath('./td[11]/text()').get()  # 場次
        playing_time = tr.xpath('./td[12]/text()').get()  # 上場時(shí)間
        print(rank, player, team, score, hit_shot, hit_rate, hit_three,
              three_rate, hit_penalty, penalty_rate, session, playing_time)

        data_dict = {
            '排名': rank, '球員': player, '球隊(duì)': team, '得分': score,
            '命中-出手': hit_shot, '命中率': hit_rate, '命中-三分': hit_three, '三分命中率': three_rate,
            '命中-罰球': hit_penalty, '罰球命中率': penalty_rate, '場次': session, '上場時(shí)間': playing_time}

        csv_write.writerow(data_dict)
				
        #  想要完整源碼的同學(xué)可以關(guān)注我的公眾號(hào):松鼠愛吃餅干
        #  回復(fù)“虎撲NBA”即可免費(fèi)獲取

運(yùn)行代碼,效果如下

Python如何爬取NBA虎撲球員數(shù)據(jù)

關(guān)于Python如何爬取NBA虎撲球員數(shù)據(jù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI