當我們在變數中輸入單詞時,我想創建一個搜索系統,它在此頁面(所有游戲)的所有鏈接名稱之間搜索,有點像? control-F ?并顯示結果(名稱 鏈接)使用硒(Python)。
我不知道如何制作這樣的系統!如果能幫上忙就好了!
有一個不錯的代碼!
uj5u.com熱心網友回復:
您正在嘗試在頁面上查找特定元素,然后對它們進行排序以獲得關鍵搜索詞。Selenium 可以通過多種方法識別頁面上的元素,請參閱此處獲取指南。找到所有元素后,您可以過濾它們以查找感興趣的搜索詞。
找到所有感興趣的元素:
我會利用XPATH您的元素在頁面上找到它們并制作一個串列,然后您可以根據您的關鍵字進行搜索。在您的情況下,它們都可以通過此 xpath 識別:
//div[@]//a
提取所需資訊:
獲得元素串列后,您需要遍歷它們以提取href標簽(游戲的 url)和innerHTML文本(游戲的名稱)。
我在下面的示例中使用了串列理解來執行此操作,它創建了一個字典{url:name, ...},您可以從中過濾特定專案。
示例代碼:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.firefox import GeckoDriverManager
website_url = 'https://steamunlocked.net/all-games-2/'
game_xpaths = '//div[@]//a'
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()))
driver.get(website_url)
game_elements = driver.find_elements(By.XPATH, game_xpaths)
games = {g.get_attribute('href'):g.get_attribute('innerHTML') for g in game_elements}
games
"""
Outputs:
{'https://steamunlocked.net/red-tether-free-download/': '—Red—Tether–> Free Download (v1.006)',
'https://steamunlocked.net/hack-g-u-last-recode-free-download/': '.hack//G.U. Last Recode Free Download (v1.01)',
'https://steamunlocked.net/n-verlore-verstand-free-download/': '‘n Verlore Verstand Free Download',
'https://steamunlocked.net/0-n-0-w-free-download/': '0°N 0°W Free Download',
'https://steamunlocked.net/007-legends-free-download/': '007 Legends Free Download', ...
"""
查找特定專案(即 CTRL F)
僅識別和過濾字典中的特定專案以查找您感興趣的單詞/字串的出現。
def search(myDict, search_term):
return [[v,k] for k,v in myDict.items() if search_term.lower() in v.lower()]
>>> search(games, 'Ninja')
[['10 Second Ninja Free Download','https://steamunlocked.net/10-second-ninja-free-download/'],
['10 Second Ninja X Free Download','https://steamunlocked.net/10-second-ninja-x-free-download/']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/473976.html
