使用背景:
当我们需要在打开的浏览器中进行自动化操作时需要用到此方法。
1、为了防止污染别的环境(同一个网站多个账号爬取的情况),最好对浏览器使用新的端口创建debug副本。
具体操作如下
(1)右键浏览器创建副本(或者直接复制)
(2)在新生成的快捷方式上右键–属性,修改其中的目标栏
增加如下内容:
--remote-debugging-port=9233 --user-data-dir="C:\Users\admin\Desktop\mywork"
请注意是增加,然后应用确定,此时打开新生成的浏览器感觉会像是全新的浏览器,可以在其中登录账号等。同时会在 “C:\Users\admin\Desktop\mywork” 生成一个用户文件保存你在此浏览器中的账号记录等。
端口号可以随意设置,只要不和系统应用端口冲突即可。(端口号下面要使用的)
2、编写代码
这一步和其他方法的主要区别是添加了指定监听的浏览器端口,这样就可以在打开的浏览器中执行自己想运行的程序了。
示例代码如下
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
chrome_options = Options()
#chrome_options.add_argument('headless')
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "chromedriver.exe" # 指定自己的chromedriver路径
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)
#print(driver.get_cookies())
driver.get('http://www.baidu.com')
(这里不同版本的selenium 调用的方式会有一丢丢出入,可能需要大家翻一下源码看看怎么初始化了)
3、测试
这里先打开浏览器,任意打开一个网址。然后执行代码,会先输出开始的网址的title,然后切换页面至百度的首页。
ok,今天就到这里了 _ 。