从中提取项元素。结果

2024-10-01 17:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现了一个很酷的python脚本,它可以从NFL rosters中获取玩家信息。不过,我想添加NFL合并结果的数据。我已经包括了一个球员下面的例子。在

import urllib.request
from bs4 import BeautifulSoup

URL2 = 'www.nfl.com/player/deandrewwhite/2552657/combine'
soupCombine = BeautifulSoup(urllib.request.urlopen(URL2))
Combinestats = soupCombine.find_all("div", attrs = {"class": "tp-title"})
Combinestats[0].contents

产生:

^{pr2}$

如何从Combinestats[0]获取以下内容?在

DrillName = '3 Cone Drill'

DrillResult = 6.97

以下是Combinestats中的项目供参考。在

for ii in range(len(Combinestats)):
     print(Combinestats[ii].contents)

['3 Cone Drill', <span class="tp-results">6.97 secs</span>]
['40 Yard Dash', <span class="tp-results">4.44 Secs</span>]
['Broad Jump', <span class="tp-results">118.0 inches</span>]
['20 Yard Shuttle', <span class="tp-results">4.18 secs</span>]
['Vertical Jump', <span class="tp-results">34.5 inches</span>]

Tags: importrequestcontentsurllibresultsclassspannfl
2条回答

这是另一种同样的方法。不过,看起来有点尴尬。在

import requests
from bs4 import BeautifulSoup

URL = "http://www.nfl.com/player/deandrewwhite/2552657/combine"
res = requests.get(URL)
soup = BeautifulSoup(res.text,"lxml")
items = {item.select_one(".tp-results").previous_sibling:item.select_one(".tp-results").text for item in soup.select(".tp-title")}
print(items)

输出:

^{pr2}$

只需使用列表理解。在

resultSet = soup.find_all("div", attrs = {"class": "tp-title"})
stats = [
    (i.contents[0], i.contents[1].text) for i in resultSet

]

或者,一个for循环。在

^{pr2}$

print(stats)
[
    ('40 Yard Dash', '4.44 Secs'),
    ('3 Cone Drill', '6.97 secs'),
    ('Broad Jump', '118.0 inches'),
    ('20 Yard Shuttle', '4.18 secs'),
    ('Vertical Jump', '34.5 inches')
]

相关问题 更多 >

    热门问题