<p>这是一个冗长的方法来尝试。赔率的奇数行(由循环确定)进入第1组(第1组与第2组的左侧)。即使排成2队。列表列表被展平。然后@user942640按照答案<a href="https://stackoverflow.com/a/21482016/6241235">here</a>所示将列表合并为备用成员。你知道吗</p>
<p>注意:这依赖于等长列表来返回准确的结果。你知道吗</p>
<pre><code>import itertools
from bs4 import BeautifulSoup as bs
#your existing code to get to page and wait for presence of all elements
soup = bs(driver.page_source, 'lxml')
teams = [item.text.split(' v ') for item in soup.select('.sl-CouponParticipantWithBookCloses_NameContainer')]
i = 0
team1 = []
team2 = []
for item in soup.select('.sl-MarketCouponValuesExplicit2'):
if i % 2 == 0:
team1.append([i.text for i in item.select('div:not(.gl-MarketColumnHeader )')])
else:
team2.append([i.text for i in item.select('div:not(.gl-MarketColumnHeader )')])
i+=1
team1 = [item for sublist in team1 for item in sublist]
team2 = [item for sublist in team2 for item in sublist]
teams = [item for sublist in teams for item in sublist]
team_odds = [x for x in itertools.chain.from_iterable(itertools.zip_longest(team1,team2)) if x]
final = [x for x in itertools.chain.from_iterable(itertools.zip_longest(teams, team_odds)) if x]
print(final)
</code></pre>
<hr/>
<p>比如(注意概率不断更新):</p>
<pre><code>from selenium import webdriver
import itertools
from bs4 import BeautifulSoup as bs
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get('https://www.bet365.com/#/HO/')
driver.get('https://www.bet365.com/#/AC/B151/C1/D50/E2/F163/')
WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".sl-MarketCouponValuesExplicit2")))
soup = bs(driver.page_source, 'lxml')
teams = [item.text.split(' v ') for item in soup.select('.sl-CouponParticipantWithBookCloses_NameContainer')]
i = 0
team1 = []
team2 = []
for item in soup.select('.sl-MarketCouponValuesExplicit2'):
if i % 2 == 0:
team1.append([i.text for i in item.select('div:not(.gl-MarketColumnHeader )')])
else:
team2.append([i.text for i in item.select('div:not(.gl-MarketColumnHeader )')])
i+=1
team1 = [item for sublist in team1 for item in sublist]
team2 = [item for sublist in team2 for item in sublist]
teams = [item for sublist in teams for item in sublist]
team_odds = [x for x in itertools.chain.from_iterable(itertools.zip_longest(team1,team2)) if x]
final = [x for x in itertools.chain.from_iterable(itertools.zip_longest(teams, team_odds)) if x]
print(final)
</code></pre>