[英]python web scraping beautiful soup and adding to a list
我正在嘗試學習使用Python和BeautifulSoup進行網絡抓取。 我的問題是,當嘗試將“已抓取的”項目添加到新列表時,當我打印列表時,僅顯示相關標簽中的最后一個條目。 如何將每個組合添加為列表項?
import requests
standings = requests.get('http://games.espn.com/ffl/tools/finalstandings?leagueId=379978&seasonId=2012')
from bs4 import BeautifulSoup
soup = BeautifulSoup(standings.text, 'html.parser')
## Ask BeautifulSoup to find all of the records
pat = soup.find_all('tr', attrs={'class':'sortableRow evenRow'})
teams = []
for x in pat:
name1 = x.find('a').text
record1 = x.find('td', {'class':'sortableREC'}).text
pf1 = x.find('td', {'class':'sortablePF'}).text
pa1 = x.find('td', {'class':'sortablePA'}).text
pfg1 = x.find('td', {'class':'sortablePFG'}).text
pag1 = x.find('td', {'class':'sortablePAG'}).text
diff1 = x.find('td', {'class':'sortableDIFF'}).text
teams.append((name1, record1, pf1, pa1, pfg1, pag1, diff1))
奇數= soup.find_all('tr',attrs = {'class':'sortableRow奇數行'})
teams2 = []
for team in odd:
name2 = team.find('a').text
record2 = team.find('td', {'class':'sortableREC'}).text
pf2 = team.find('td', {'class':'sortablePF'}).text
pa2 = team.find('td', {'class':'sortablePA'}).text
pfg2 = team.find('td', {'class':'sortablePFG'}).text
pag2 = team.find('td', {'class':'sortablePAG'}).text
diff2 = team.find('td', {'class':'sortableDIFF'}).text
teams2.append((name2, record2, pf2, pa2, pfg2, pag2, diff2))
假設這不僅僅是代碼格式化錯誤,那是因為您的.append(...)
調用不在循環中。 將它們縮進到與變量設置相同的級別(如果在列表創建過程中只需要這些值,則不需要這樣做),並且應該獲得所有相關值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.