我试图收集棒球阵容数据,但只想返回球员姓名。然而,现在,它给了我位置,换行符,名字,换行符,然后是击球方。例如我想要
'D. Fletcher'
但是我得到了
'LF\nD. Fletcher\nR'
另外,它给了我页面上所有的玩家。我最好按团队对它们进行分组,这可能需要建立某种类型的字典,但不确定代码是什么样子。
我曾尝试使用^ {CD3>}函数,但我相信它只去除先导或尾随的问题,而不是中间。我尝试过研究如何从锚定标签中获取标题信息,但还没有找到如何做到这一点。
from bs4 import BeautifulSoup
import requests
url = 'https://www.rotowire.com/baseball/daily_lineups.htm'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
players = soup.find_all('li', {'class': 'lineup__player'})
####for link in players.find('a'):
##### print (link.string)
awayPlayers = [player.text.strip() for player in players]
print(awayPlayers)
您应该只获取
a
标记的.text
,而不是整个li
:这将导致如下结果:
^{pr2}$假设你想用球队名称和球员构建dict,你可以做如下的事情。我不知道你是否需要突出的球员,比如特雷弗鲍尔?我添加了变量以备需要时保存它们。在
广告框和工具框通过:not pseudo class被排除,它传递一个要忽略的类列表。在
示例信息:
当前结构:
我想你已经快到了,你只需要稍微调整一下:
这个列表理解将只从列表中获取名称,然后从锚定中提取文本…您将得到一个名称列表:
^{pr2}$相关问题 更多 >
编程相关推荐