python - BeautifulSoup - 如何排列数据并写入txt?

标签 python beautifulsoup

Python 新手,有一个简单的问题。我正在将一些数据从 Yahoo Fantasy Baseball 提取到文本文件,但我的代码无法正常工作:

from bs4 import BeautifulSoup
import urllib2

teams = ("http://baseball.fantasysports.yahoo.com/b1/2282/players?status=A&pos=B&cut_type=33&stat1=S_S_2015&myteam=0&sort=AR&sdir=1")
page = urllib2.urlopen(teams)
soup = BeautifulSoup(page, "html.parser")

players = soup.findAll('div', {'class':'ysf-player-name Nowrap Grid-u Relative Lh-xs Ta-start'})

playersLines = [span.get_text('\t',strip=True) for span in players]

with open('output.txt', 'w') as f:
    for line in playersLines:
        line = playersLines[0]
        output = line.encode('utf-8')
        f.write(output)

输出文件中只有一名玩家25次。有什么想法可以得到这样的结果吗?

Pedro Álvarez   Pit - 1B,3B
Kevin Pillar    Tor - OF
Melky Cabrera   CWS - OF
etc

最佳答案

尝试删除: line =playerLines[0]

此外,在输出末尾附加一个换行字符,以使它们写入output.txt 文件中的单独行:

from bs4 import BeautifulSoup
import urllib2

teams = ("http://baseball.fantasysports.yahoo.com/b1/2282/players?status=A&pos=B&cut_type=33&stat1=S_S_2015&myteam=0&sort=AR&sdir=1")
page = urllib2.urlopen(teams)
soup = BeautifulSoup(page, "html.parser")

players = soup.findAll('div', {'class':'ysf-player-name Nowrap Grid-u Relative Lh-xs Ta-start'})

playersLines = [span.get_text('\t',strip=True) for span in players]

with open('output.txt', 'w') as f:
    for line in playersLines:
        output = line.encode('utf-8')
        f.write(output+'\n')

结果:

Pedro Álvarez   Pit - 1B,3B
Kevin Pillar    Tor - OF
Melky Cabrera   CWS - OF
Ryan Howard     Phi - 1B
Michael A. Taylor       Was - OF
Joe Mauer       Min - 1B
Maikel Franco   Phi - 3B
Joc Pederson    LAD - OF
Yangervis Solarte       SD - 1B,2B,3B
César Hernández Phi - 2B,3B,SS
Eddie Rosario   Min - 2B,OF
Austin Jackson  Sea - OF
Danny Espinosa  Was - 1B,2B,3B,SS
Danny Valencia  Oak - 1B,3B,OF
Freddy Galvis   Phi - 3B,SS
Jimmy Paredes   Bal - 2B,3B
Colby Rasmus    Hou - OF
Luis Valbuena   Hou - 1B,2B,3B
Chris Young     NYY - OF
Kevin Kiermaier TB - OF
Steven Souza    TB - OF
Jace Peterson   Atl - 2B,3B
Juan Lagares    NYM - OF
A.J. Pierzynski Atl - C
Khris Davis     Mil - OF

关于python - BeautifulSoup - 如何排列数据并写入txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32226407/

相关文章:

python - 如何用鼠标从视频中截取图片

python - 编写适用于 CPython、Jython 和 IronPython 的 Python 代码有哪些策略?

python - 为 python 安装 numba

python - soup.find_all ('div' , {"class":"top_first_part clearfix"}) 当网页中实际存在匹配项时返回空列表

python - Golang 可以像 Python 那样将字符串相乘吗?

python - R 中的 Collat​​z 猜想

python - Beautifulsoup - 抓取除表数据之外的所有内容

python - 使用 BeautifulSoup 从选择中返回文本

javascript - 如何通过匹配 BeautifulSoup 中 href 属性中的文本来获取元素

selenium - 如何使用 Python 填写 JavaScript 表单?