国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【小白必看】Python爬取NBA球員數(shù)據(jù)示例

這篇具有很好參考價值的文章主要介紹了【小白必看】Python爬取NBA球員數(shù)據(jù)示例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

前言

使用 Python 爬取 NBA 球員數(shù)據(jù)的示例代碼。通過發(fā)送 HTTP 請求,解析 HTML 頁面,然后提取出需要的排名、姓名、球隊和得分信息,并將結(jié)果保存到文件中。

導(dǎo)入需要的庫和模塊

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

import requests
from lxml import etree
  • 使用requests庫發(fā)送HTTP請求。
  • 使用lxml庫進(jìn)行HTML解析。

設(shè)置請求頭和請求地址

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

url = 'https://nba.hupu.com/stats/players'
headers ={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
  • 設(shè)置請求頭信息,包括用戶代理(User-Agent)。
  • 設(shè)置請求的地址為’https://nba.hupu.com/stats/players’。

發(fā)送HTTP請求并獲取響應(yīng)

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

resp = requests.get(url, headers=headers)
  • 使用requests庫發(fā)送HTTP GET請求,并傳入請求地址和請求頭信息。
  • 將返回的響應(yīng)保存在變量resp中。

處理響應(yīng)結(jié)果

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

e = etree.HTML(resp.text)
  • 使用etree.HTML函數(shù)將返回的響應(yīng)文本解析為一個可操作的HTML元素樹對象。
  • 將解析后的結(jié)果保存在變量e中。

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

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

nos = e.xpath('//table[@class="players_table"]//tr/td[1]/text()')
names = e.xpath('//table[@class="players_table"]//tr/td[2]/a/text()')
teams = e.xpath('//table[@class="players_table"]//tr/td[3]/a/text()')
scores = e.xpath('//table[@class="players_table"]//tr/td[4]/text()')
  • 使用XPath表達(dá)式從HTML元素樹中提取需要的數(shù)據(jù)。
  • 分別將排名(nos)、姓名(names)、球隊(teams)和得分(scores)保存在對應(yīng)的變量中。

將結(jié)果保存到文件

with open('nba.txt', 'w', encoding='utf-8') as f:
    for no, name, team, score in zip(nos, names, teams, scores):
        f.write(f'排名:{no} 姓名:{name}  球隊:{team} 得分:{score}\n')
  • 打開一個文件nba.txt,以寫入模式(‘w’)進(jìn)行操作,編碼方式為UTF-8。
  • 使用zip函數(shù)同時遍歷排名、姓名、球隊和得分,將它們合并成一個元組。
  • 將每一行的數(shù)據(jù)按照指定格式寫入文件中。

完整代碼

# 引入 requests 庫,用于發(fā)送 HTTP 請求
import requests
# 引入 lxml 庫,用于解析 HTML
from lxml import etree

# 設(shè)置請求的地址
url = 'https://nba.hupu.com/stats/players'
# 設(shè)置請求頭信息,包括用戶代理(User-Agent)
headers ={ 
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}

# 發(fā)送HTTP GET請求,并傳入請求地址和請求頭信息,將返回的響應(yīng)保存在變量resp中
resp = requests.get(url, headers=headers)

# 使用etree.HTML函數(shù)將返回的響應(yīng)文本解析為一個可操作的HTML元素樹對象
e = etree.HTML(resp.text)

# 使用XPath表達(dá)式從HTML元素樹中提取需要的數(shù)據(jù)
nos = e.xpath('//table[@class="players_table"]//tr/td[1]/text()')
names = e.xpath('//table[@class="players_table"]//tr/td[2]/a/text()')
teams = e.xpath('//table[@class="players_table"]//tr/td[3]/a/text()')
scores = e.xpath('//table[@class="players_table"]//tr/td[4]/text()')

# 打開一個文件`nba.txt`,以寫入模式('w')進(jìn)行操作,編碼方式為UTF-8
with open('nba.txt', 'w', encoding='utf-8') as f:
    # 使用zip函數(shù)同時遍歷排名、姓名、球隊和得分,將它們合并成一個元組
    for no, name, team, score in zip(nos, names, teams, scores):
        # 將每一行的數(shù)據(jù)按照指定格式寫入文件中
        f.write(f'排名:{no} 姓名:{name}  球隊:{team} 得分:{score}\n')

詳細(xì)解析

# pip install requests
import requests

導(dǎo)入 requests 庫,該庫用于發(fā)送 HTTP 請求。

# pip install lxml
from lxml import etree

導(dǎo)入 lxml 庫,該庫用于解析 HTML。

# 發(fā)送的地址
url = 'https://nba.hupu.com/stats/players'

設(shè)置需要發(fā)送請求的地址。

headers ={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}

設(shè)置請求頭信息,包括用戶代理(User-Agent)。這個信息告訴服務(wù)器我們的請求是從一個瀏覽器發(fā)出的,而不是爬蟲,這樣可以避免被反爬蟲機(jī)制阻止。

# 發(fā)送請求
resp = requests.get(url,headers = headers)

使用 requests.get 方法發(fā)送 HTTP GET 請求,并傳入請求地址和請求頭信息。將返回的響應(yīng)保存在變量 resp 中。

e = etree.HTML(resp.text)

使用 etree.HTML 函數(shù)將返回的響應(yīng)文本解析為一個可操作的 HTML 元素樹對象。etree.HTML 接受一個字符串類型的參數(shù),這里使用 resp.text 來獲取響應(yīng)的文本內(nèi)容。

nos = e.xpath('//table[@class="players_table"]//tr/td[1]/text()')
names = e.xpath('//table[@class="players_table"]//tr/td[2]/a/text()')
teams = e.xpath('//table[@class="players_table"]//tr/td[3]/a/text()')
scores = e.xpath('//table[@class="players_table"]//tr/td[4]/text()')

使用 XPath 表達(dá)式從 HTML 元素樹中提取需要的數(shù)據(jù)。這里分別使用了四個 XPath 表達(dá)式來提取排名、姓名、球隊和得分的數(shù)據(jù),并將它們分別保存在 nosnames、teamsscores 變量中。

with open('nba.txt','w',encoding='utf-8') as f:
    for no,name,team,score in zip(nos,names,teams,scores):
        f.write(f'排名:{no} 姓名:{name}  球隊:{team} 得分:{score}\n')

以寫入模式(‘w’)打開一個名為 nba.txt 的文件,并使用 UTF-8 編碼。然后,使用 zip 函數(shù)同時遍歷排名、姓名、球隊和得分,將它們合并成一個元組。通過循環(huán)遍歷每個元組,將每行的數(shù)據(jù)按照指定格式寫入文件中。

這樣,代碼就實現(xiàn)了對 NBA 球員數(shù)據(jù)進(jìn)行爬取,并將結(jié)果保存到 nba.txt 文件中。

運行效果

【小白必看】Python爬取NBA球員數(shù)據(jù)示例,python案例分析歸納,python,開發(fā)語言,爬蟲,小白必看,原力計劃

結(jié)束語

通過本文的示例代碼,你可以學(xué)習(xí)使用Python爬取NBA球員數(shù)據(jù)的方法。我們使用了requests庫發(fā)送HTTP請求,lxml庫進(jìn)行HTML解析,以及XPath表達(dá)式提取需要的數(shù)據(jù)。最后將結(jié)果保存到文件中。這個示例可以幫助你了解爬蟲的基本原理和操作步驟,同時也能夠獲取到有關(guān)NBA球員的數(shù)據(jù)。希望本文對你理解和掌握Python爬蟲技術(shù)有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-612244.html

到了這里,關(guān)于【小白必看】Python爬取NBA球員數(shù)據(jù)示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包