![](/img/trans.png)
[英]How to get Zero click search result from google API (Programmable Search Engine)?
[英]How to click on a search engine result if it matches the searched value
我是 selenium 的新手。 我正在接受用户输入并基于此,我正在duckduckgo 中搜索它。 我想,如果输入值与搜索结果 web 链接匹配,则代码应点击匹配的网站。 我的代码执行成功,但没有点击网页链接。 这是我的代码:-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
stuff = input()
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument("==lang=es")
browser = webdriver.Chrome()
browser.implicitly_wait(30)
browser.maximize_window()
browser.get('http://www.duckduckgo.com')
elem = browser.find_element_by_name('q')
elem.clear()
elem.send_keys(stuff)
elem.submit()
list = stuff.lower().replace(' ', '').split(',')
for a in browser.find_elements_by_id('links'):
b = a.find_elements_by_tag_name('a')
for link in b:
url = link.get_attribute('href')
if any(dom in url for dom in list):
link.click()
break
例如; 我输入了这个输入值 - Mitchell Centre, Darwin CBD, 0800
我的代码运行并打开了duckduckgo并在搜索栏中输入了这个值,它应该点击与我的输入值匹配的网站(在蓝色气泡中),但是代码在此之后停止。
我不明白问题是什么,如果你们能帮助我,那就太好了。
实际上我来自 Java 背景,但如果你可以将我的两行 java 代码转换为 python 你将能够实现它
你的代码:
对于 b 中的链接:url = link.get_attribute('href') 如果有(url 中的 dom 列表中的 dom):link.click() 中断
而不是link.get_attribute,转换上面的代码如下
在 Java 我们有.getText() 方法来获取文本。
因此,尝试使用 python 获取您要查找的文本,如下所示(我使用了 Java)
link.getText() store this in a variable
For ex as in Java : String str = link.getText()
然后你的 if 条件来了
使用您的包含方法,如 python 下面的一个在 Java
if(str.contains("Mitchell Centre, Darwin CBD, 0800"))
link.click()
break
这段代码对我来说很好用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.