python web scraping美丽的汤并添加到列表中

问题描述 投票:0回答:1

我正在尝试使用Python和BeautifulSoup学习web scrape。我的问题是当尝试将“已删除”项添加到新列表时,在打印列表时仅显示相关标签中的最后一个条目。如何将每个组合添加为列表项?

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))

odd = soup.find_all('tr',attrs = {'class':'sortableRow oddRow'})

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))
python html web beautifulsoup screen-scraping
1个回答
0
投票

假设这不仅仅是代码格式化错误,那是因为你的.append(...)调用不在你的循环中。将它们缩进到与变量设置相同的级别(如果在列表创建期间只需要这些值,则不需要它们),并且应该获得所有相关值。

© www.soinside.com 2019 - 2024. All rights reserved.