首页 新闻 会员 周边

关于使用selenium接管浏览器时遇到的问题

0
[已解决问题] 解决于 2021-03-30 14:12

代码:

import os
import json
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class ZhiHu:
def init(self):
self.url = 'https://www.zhihu.com/'
self.chrome_options = Options()
self.chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") # 前面设置的端口号
self.browser = webdriver.Chrome(executable_path='../chromedriver.exe', options=self.chrome_options) # executable执行webdriver驱动的文件

def get_start(self):
    self.browser.get(self.url)
    #time.sleep(20)  # 可以选择手动登录或者是自动化,我这里登录过就直接登陆了
    info = self.browser.get_cookies()  # 获取cookies
    print(info)
    with open(r"info.json", 'w', encoding='utf-8') as f:
        f.write(json.dumps(info))

    self.browser.close()

if name == 'main':
os.system('chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\Learn\selenium_data"')
zhihu = ZhiHu()
zhihu.get_start()
提示的错误:
[11768:5712:0330/110048.363:ERROR:external_registry_loader_win.cc(160)] File D:\杞欢\Xdown\xdown\eapmjcdkdlenhkbanlgacimfibbbiinc.crx for key Software\Google\Chrome\Extensions\eapmjcdkdlenhkbanlgacimfibbbiinc does not exist or is not readable.

DevTools listening on ws://127.0.0.1:9222/devtools/browser/f6af029e-e644-4404-a872-4e992da7b162
[11768:9968:0330/110052.869:ERROR:device_event_log_impl.cc(214)] [11:00:52.868] USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection: 连到系统上的设备没有发挥作用。 (0x1F)
[11768:9968:0330/110052.870:ERROR:device_event_log_impl.cc(214)] [11:00:52.869] USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection: 连到系统上的设备没有发挥作用。 (0x1F)

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:9222
from chrome not reachable

木三136的主页 木三136 | 初学一级 | 园豆:159
提问于:2021-03-30 11:27
< >
分享
最佳答案
0
奖励园豆:5
小小咸鱼YwY | 老鸟四级 |园豆:3210 | 2021-03-30 13:48

您的回答让我找到了出错的原因 十分感谢
一开始我是手动打开浏览器的 即通过cmd
但是我想在程序中 自动实现 打开浏览器 也就是这行代码
os.system('chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\Learn\selenium_data"')
但就是这行代码导致了错误

木三136 | 园豆:159 (初学一级) | 2021-03-30 14:10

如果用os.popen就没事了
os.popen('chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\Learn\selenium_data"')
再次感谢

木三136 | 园豆:159 (初学一级) | 2021-03-30 14:11
其他回答(1)
0

是不是进程冲突了

Lou1s | 园豆:202 (菜鸟二级) | 2021-03-30 11:36

就像是您说的,我也怀疑是进程冲突了,但是通过cmd查看正在使用的进程,并没有发现相同的端口

支持(0) 反对(0) 木三136 | 园豆:159 (初学一级) | 2021-03-30 11:38

@木三136: 看一下注册表呢

支持(0) 反对(0) Lou1s | 园豆:202 (菜鸟二级) | 2021-03-30 11:42

@Lou1s: 关于您说的注册表,我刚刚看了下 也没有啊

支持(0) 反对(0) 木三136 | 园豆:159 (初学一级) | 2021-03-30 11:48

@木三136: 我看了篇文章和你的问题有点像,可能能帮到你https://stackoverflow.com/questions/24789746/portable-browser-issues-when-deploying-r-shiny-app

支持(0) 反对(0) Lou1s | 园豆:202 (菜鸟二级) | 2021-03-30 11:57

@Lou1s: 多谢您的回答,我会看下这篇文章的

支持(0) 反对(0) 木三136 | 园豆:159 (初学一级) | 2021-03-30 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册