我正試圖使用硒來收集所選用戶檔案中的所有游戲標題,以便我以后可以使用隨機.choice隨機選擇一個游戲,建議他們利用discord機器人來玩這個。然而我目前所尋求的幫助只是將游戲標題列印到控制臺,我可以處理discord.py的集成。
到目前為止,我能夠回傳整個游戲串列,但是它還包括不需要的資訊,如播放時間和鏈接。
我希望僅分離出游戲標題,并將每個游戲存盤在一個串列中,以便稍后參考,隨機選擇一個。
到目前為止,我曾嘗試使用 .split(' '),但是獨立行的數量根據回傳的資訊而變化,而且并非所有用戶在其頁面上都有相同數量的標題。
我還嘗試了使用xpath:
//*[@id="game_107410"]/div[2]/div[1]/div[1]/div
然而,正如容易看到的那樣,這是在參考一個特定的游戲ID,不會回傳同一頁面上的其他標題。
我目前的代碼如下所示。如果您對解決這個問題有任何建議或指導,請提前感謝您。
from selenium import webdriver
PATH = 'C:/Program Files (x86)/chromedriver.exe'/span>
game_titles ={}。
driver = webdriver.Chrome(PATH)
driver.get('https://steamcommunity.com/id/Desmoo88/games/?tab=all')
game_list= driver.find_element_by_xpath('//*[@id="games_list_rows">').text
print(game_list)
driver.quit()
uj5u.com熱心網友回復:
你可以使用這個選擇器來抓取游戲標題的文本:
div.gameListRowItemName.ellipsis
嘗試以下代碼:
driver.get('https://steamcommunity.com/id/Desmoo88/games/?tab=all')
game_titles =[]
wait = WebDriverWait(driver, 20)
title_list = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'div.gameListRowItemName.ellipsis') )
for title in title_list:
game_titles.append(title.text)
print(len(game_titles))
print(game_titles)
下面的匯入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
uj5u.com熱心網友回復:
你可以這樣嘗試:
from selenium import webdriver
driver = webdriver.Chrome(executable_path="path to chromdriver.exe")
driver.maximum_window()
driver.implicitly_wait(10)
driver.get("https://steamcommunity.com/id/Desmoo88/games/?tab=all")
rows = driver.find_elements_by_class_name("gameListRow") # 收集所有行。
for row in rows:
name = row.find_element_by_xpath(".//div[contains(@class,'Name')]").text # Collect the Name in that particular row. 要在一個元素中找到一個元素,請在`xpath`前加上`.`。
print(name)
Arma 3
Garry的Mod
反恐精英。全球攻勢
...
Zeno Clash 2
僵尸跑
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/318366.html
標籤:
