python模拟打开浏览器搜索某关键词获取搜索列表

2023-09-22

python模拟打开浏览器搜索某关键词获取搜索列表

演示网站:gofly.v1kf.com
我的微信:llike620
我的微信

打开已存在的浏览器

打开已存在的浏览器有个很重要的作用就是,可以对于一些登录场景,提前登录好,不需要模拟登录了。

在命令行中执行打开chrome的命令,在图标上找到chrome的安装位置

在cmd命令行下执行命令

C:\Program Files\Google\Chrome\Application>chrome.exe –remote-debugging-port=9222

此时调试模式会监听9222端口

模拟打开百度,并进行搜索

import time

from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.chrome.options import Options import pygetwindow as gw try:     chrome_options = Options()     chrome_options.add_experimental_option(“debuggerAddress”, “127.0.0.1:9222”)     browser = webdriver.Chrome(options=chrome_options)     print(“浏览器已打开”+browser.title)     # 切换到前台     windows = gw.getWindowsWithTitle(browser.title)     if len(windows) > 0:         windows[0].activate()     time.sleep(1)

    # 新建新标签     browser.execute_script(“window.open('');”)     browser.switch_to.window(browser.window_handles[-1])     time.sleep(2)

    # 在新标签页中打开一个URL     browser.get('https://www.baidu.com/')     # 输入搜索词并回车     elem = browser.find_element(By.ID, “kw”)     elem.send_keys(“唯一客服”)     elem.send_keys(Keys.RETURN)

    print(“获取搜索列表:”)     # 使用WebDriverWait确保搜索结果已经加载    WebDriverWait(browser, 10).until(         EC.presence_of_all_elements_located((By.XPATH, “//div[@id='content_left']//h3/a”))     )     # 获取所有的搜索结果标题     results = browser.find_elements(By.XPATH, “//div[@id='content_left']//h3/a”)     for result in results:         print(result.text)

    # 关闭标签     browser.close() except Exception as e:     print(“An error occurred:”, e)