痛点:
selenium 运行每次打开新的浏览器窗口的方式,
1、session信息每次都全部丢失,
2、程序关闭后浏览器窗口也关闭。需要重复打开
3、浏览器显示“正受到自动测试软件的控制”,很容易被网站防爬策略检测到为机器人,禁止爬虫的行为
解决以上问题可以通过远程调试的方式,打开一个调试模式的浏览器, 然后selenium 去连接操作
chrome谷歌浏览器打开调试模式:
1.方法一: 新建文件夹D:/test,进入chrome.exe 目录,打开CMD,输入
chrome.exe --remote-debugging-port=9999 --user-data-dir="D:\test"
2、方法二:
复制一个chrome快捷方式,右击这个快捷方式浏览器属性,目标后面加上参数" --remote-debugging-port=9999 --user-data-dir="D:\test",点击确定。 然后点击打开浏览器。
selenium 连接浏览器,代码如下:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9999")
# selenium 运行时会从系统的环境变量中查找 webdriver.exe
# 一般把 webdriver.exe 放到 python 目录中,这样就不用在代码中指定。
chrome_driver = "D:/SoftInstall/python3/Scripts/chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
driver.get("https://www.baidu.com/")
print(driver.title)
driver.quit()