<p>您需要将鼠标悬停在某个元素上,然后等待数据出现并获取其文本:</p>
<p>下面是列表中第一个游戏的片段。要获得所有游戏,您需要另一个循环</p>
<p>我使用<code>ActionChains</code>将鼠标悬停在元素上。即使对我来说,找到这个网站的定位器也不容易</p>
<pre><code>from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.get("https://osu.ppy.sh/beatmapsets?m=0")
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".beatmapsets__items-row:nth-of-type(1)>.beatmapsets__item:nth-of-type(1)")))
games = driver.find_element_by_css_selector(".beatmapsets__items-row:nth-of-type(1) .beatmapsets__item:nth-of-type(1) .beatmapset-panel__info-row extra")
actions = ActionChains(driver)
actions.move_to_element(games).perform()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".beatmaps-popup__group")))
levels = driver.find_elements_by_css_selector(".beatmaps-popup__group .beatmaps-popup-item__col.beatmaps-popup-item__col name.u-ellipsis-overflow")
for level in levels:
print(level.text)
</code></pre>
<p>输出:</p>
<pre><code>Hinsvar's Hard
Zelqurre's Insane
Amamir's Shining Stars
</code></pre>
<p>要通过级别列表进行迭代,请使用此css选择器:</p>
<pre><code>.beatmapsets__items-row:nth-of-type(1) .beatmapsets__item:nth-of-type(1) .beatmapset-panel__info-row extra
</code></pre>
<p>并迭代此定位器:</p>
<p>.beatmapsets\uuuu项目行:第n个类型(<strong>1</strong>)。beatmapsets\uuuu项目:第n个类型(1)。beatmapset-panel\uuu信息行额外</p>
<p>.beatmapsets\uuuu项目行:第n个类型(<strong>2</strong>)。beatmapsets\uuuu项目:第n个类型(1)。beatmapset-panel\uuu信息行额外</p>
<p><strong>更新</strong>:
要获得分数,请使用:</p>
<pre><code>scores= driver.find_elements_by_css_selector(".beatmaps-popup__group .beatmaps-popup-item__col.beatmaps-popup-item__col difficulty")
for score in scores:
print(score.text)
</code></pre>
<p>输出将是:</p>
<pre><code>2.58
3.46
4.55
4.90
5.97
</code></pre>
<p>另外,检查这个关于如何将结果放入一个列表的答案:<a href="https://stackoverflow.com/questions/67360009/trouble-retrieving-elements-and-looping-pages-using-next-page-button">Trouble retrieving elements and looping pages using next page button</a></p>
<p>最后在这里阅读有关css选择器的内容:<a href="https://www.w3schools.com/cssref/css_selectors.asp" rel="nofollow noreferrer">https://www.w3schools.com/cssref/css_selectors.asp</a></p>
<p>我通常更喜欢用它们,因为它们比较短</p>