[英]Cleaning up web parsing
我只是在練習並決定我想知道從 1980 年到 2015 年 PGA 排名第一的賺錢者
from bs4 import BeautifulSoup
import urllib.request
base_url = 'http://www.pgatour.com/stats/stat.109.'
def get_links():
urls = []
for i in range(1980,2015):
urls.append(base_url+str(i)+'.html')
return urls
def get_first(urls):
for url in urls:
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page.read())
player = soup.findAll('td',{'class':'player-name'})
print (player)
get_first(get_links())
所以這個問題我遇到了兩個問題。
這將返回和整個鏈接,而我只想要玩家的名字。
我只想要第一個球員,而不是整整幾年的價值。
我試圖通過將 findAll 更改為 find 來解決問題 2。 不幸的是,只返回了 Player Name,因為這是所有頁面的第一個條目。 任何幫助將不勝感激。 謝謝!
要獲得唯一的第一個玩家名稱,您應該使用以下代碼:
player = soup.find_all('td',{'class':'player-name'})
if len(player) > 2:
first_player_name = player[1].find('a').get_text()
我跳過第一個“玩家”(因為 td 只包含列的標題 - Player Name
,那么現在你可以用第一個玩家的名字做任何你想做的事情(打印,添加到一些列表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.