检测所有名称并获取它们与Selenium Python的链接



我想做一个搜索系统,当我们在变量中输入一个词时,它搜索本页(所有游戏)的所有链接的名称之间有点像«control-F»并显示结果(名称+链接)使用Selenium (Python).

我不知道怎么做一个这样的系统!如果你能帮忙,那就太好了!

有一个好的代码!

您正在尝试定位页面上的特定元素,然后对它们进行排序以查找关键搜索词。Selenium可以通过许多方法识别页面上的元素,请参阅这里的指南。一旦你找到了所有的元素,你就可以根据感兴趣的搜索项对它们进行过滤。

查找所有感兴趣的元素:

我会利用元素的XPATH在页面上找到它们,并制作一个列表,然后您可以根据关键字进行搜索。在您的示例中,它们都可以通过以下xpath来识别:

//div[@class="blog-content"]//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[@class="blog-content"]//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/']]

相关内容

  • 没有找到相关文章

最新更新