猿问

带有 BS4 和 urllib 的 Python - 如何移动/操作从网站中提取的文本

希望编写一个程序来查找任何给定球队的 NBA 赢/输统计数据 - 然后返回数字(即 (3/6, 50%"))


更好的理解方式... 运行代码 ---- 选择湖人 ---- 根据下一场比赛返回统计数据 ---- 返回客场获胜后、客场失利后、主场获胜后、后场的百分比百分比主场输球,客场输球同样为 4


我的想法 - 找到一种方法来遍历文本并选择或提取我想要的元素,然后根据这些元素运行一些简单的数字……或者再次遍历每个游戏并记录我的每个百分比想要返回 - 所以也许将这 4 个统计数据中的每一个设置为一个变量,在遍历游戏列表时统计或添加到它们中,然后返回结果


import bs4 as bs

import urllib.request



sauce = urllib.request.urlopen('http://www.espn.com/nba/team/schedule/_/name/lal').read()

soup = bs.BeautifulSoup(sauce, 'lxml')


table = soup.find('table')

table_rows = table.find_all('tr')


for tr in table_rows:

    td = tr.find_all('td')

    row = [i.text for i in td]

    print(row)

此代码将返回一大组我想要的所有数据


['Fri, Dec 21', 'vs New Orleans ', 'W112-104  ', '19-13', 'Kuzma  23', 'James  12', 'James  14']

['Sun, Dec 23', 'vs Memphis ', 'L107-99  ', '19-14', 'James  22', 'James  14', 'James  7']

['Tue, Dec 25', '@ Golden State ', 'W127-101  ', '20-14', 'Kuzma  19', 'James  13', 'Rondo  10']

['Thu, Dec 27', '@ Sacramento ', 'L117-116  ', '20-15', 'Kuzma  33', 'Chandler  10', 'Ball  12']

['Date', 'Opponent', 'Time', 'TV', 'tickets']

['Fri, Dec 28', 'vs LA ', '10:30 PM ', 'NBATV', '1,143 tickets as low as $175 ']

['Sun, Dec 30', 'vs Sacramento ', '9:30 PM ', '', '1,270 tickets as low as $136 ']

['Wed, Jan 2', 'vs Oklahoma City ', '10:30 PM ', '', '1,240 tickets as low as $175 ']

我当然希望完成我的代码,但现在我正在寻找一些关于处理数据的帮助。我很好奇如何说 ----- 创建一个包含所有“@”客场比赛的新列表,以及一个包含所有主场比赛的列表,其中包含 BS4 和 url lib,因为我基本上是一个完全初学者。


我尝试了一些事情,比如搞乱 row = [i.text for in in td] 并尝试提取字符串、文本,但找不到正确的东西,其中一些是不正确的语法,我认为有些只是没有正确的代码。任何帮助表示赞赏!


从那里我可以努力找出进行开始时所述的实际计算所需的其他代码,如果需要任何其他帮助,我可以重新发布或提出另一个问题!


波斯汪
浏览 145回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答