python 网页抓取美汤并添加到列表中
python web scraping beautiful soup and adding to a list
我正在尝试使用 Python 和 BeautifulSoup 学习网络抓取。我的问题是在尝试将 "scraped" 项目添加到新列表时,打印列表时只显示相关标签中的最后一个条目。如何将每个组合添加为列表项?
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 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))
假设这不仅仅是代码格式错误,这是因为您的 .append(...)
调用不在您的循环内。将它们缩进到与您的变量设置相同的级别(如果您在列表创建期间只需要这些值则不需要)并且您应该获得所有相关值。
我正在尝试使用 Python 和 BeautifulSoup 学习网络抓取。我的问题是在尝试将 "scraped" 项目添加到新列表时,打印列表时只显示相关标签中的最后一个条目。如何将每个组合添加为列表项?
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 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))
假设这不仅仅是代码格式错误,这是因为您的 .append(...)
调用不在您的循环内。将它们缩进到与您的变量设置相同的级别(如果您在列表创建期间只需要这些值则不需要)并且您应该获得所有相关值。