• python爬虫-29-selenium进阶操作,还不赶紧收藏起来


    图片

    1、selenium的cookie相关操作

    有时候我们需要通过获取cookie来进行一些别的操作,这个时候我们如何对cookie进行相关操作呢?

    1.1、获取cookie

    from selenium import webdriver
    
    Driver_path = r'C:\Users\22768\Desktop\python\chromedriver.exe'
    driver = webdriver.Chrome(executable_path=Driver_path)
    driver.get('http://www.baidu.com')
    driver.maximize_window()
    # 获取所有的cookie
    for cookie in driver.get_cookies():
        print(cookie)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行之后结果如下:

    {'domain': '.baidu.com', 'expiry': 16811342, 'httpOnly': False, 'name': 'ZFY', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '9QxCBgH829qdcrDuX9xiaBy2v0rc2HrjgxLAxEA:C'}
    {'domain': '.baidu.com', 'expiry': , 'httpOnly': False, 'name': 'BA_HECTOR', 'path': '/', 'secure': False, 'value': '080100ag050k00c1a0lsf15'}
    {'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '36546_36454_316514_34813_36569_36530_36519_26350_36299_36469_36311'}
    {'domain': '.baidu.com', 'expiry': 1681341, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': '045AD49199B30BD52253537FA2B1:FG=1'}
    {'domain': '.baidu.com', 'expiry': 3802988, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': '045AD49199B30BD5514A9B616E393'}
    {'domain': '.baidu.com', 'expiry': 38058988, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '16575340'}
    {'domain': 'www.baidu.com', 'expiry': 165342, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '124753'}
    {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '1'}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.2、获取某一个cookie

    from selenium import webdriver
    
    Driver_path = r'C:\Users\22768\Desktop\python\chromedriver.exe'
    driver = webdriver.Chrome(executable_path=Driver_path)
    driver.get('http://www.baidu.com')
    driver.maximize_window()
    # 获取单个cookie
    print(driver.get_cookie('PSTM'))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.3、删除所有的cookie

    driver.delete_all_cookies()
    
    
    • 1
    • 2

    1.4、删除某个cookie

    driver.delete_cookie(key)
    
    
    • 1
    • 2

    2、selenium的页面等待

    什么是页面等待,为什么要有一个页面等待呢,你想一下哈,当你访问某个网站的时候,他是不是需要有一个加载的过程,那么如果在加载过程中你就去获取某个元素,或者某个XPATH路径了,那么他是肯定无法获取到的;

    但是呢,本身这个网站是存在相关数据的,只是因为没有加载完全,从而导致的该问题,那有同学说了,我们可以通过time.sleep的方式,让他休眠一会儿,然后我们再次获取啊,对,这种方式是没问题的,但是多长时间合适呢,这样子你的时间就固话了对吧,其他selenium是提供了这个方法的;

    逻辑就是在你规定的时间内,一直检测该元素是否出现,如果出现了,就直接运行后面的内容,如果在你指定的最大超时时间里面依旧没有出现,那么就返回错误,selenium将这块内容分成了两块,一个是显式等待,一个是隐式等待

    那么selenium的显式等待和隐式等待有什么区别呢,我觉得最大的区别在于:显式等待作用于指定元素,隐式等待作用于全局

    显式等待:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    Driver_path = r'C:\Users\22768\Desktop\python\chromedriver.exe'
    driver = webdriver.Chrome(executable_path=Driver_path)
    
    driver.get("https://www.baidu.com")
    try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, '//*[@id="kw"]'))
        )
    except:
        driver.quit()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    以上代码的意思是,如果10s内,没有检索到百度的输入框,则退出该浏览器,这个是指定了某一个元素进行的等待,他叫做显式等待;

    隐式等待:

    剩余内容请转至VX公众号 “运维家” ,回复 “190” 查看。

    ------ “运维家” ,回复 “190” ------
    ------ “运维家” ,回复 “190” ------
    ------ “运维家” ,回复 “190” ------

    linux进不去,瑞星forlinux,cowlinux,linux中暂停进程,linux应用开发百度云,linux打开dmp文件;
    linux查看ip的代码,查看linux端口绑定状态,linux下dhcp安装失败,linux下怎么打开sv文件;
    linux域名控制,zynqtcplinux,linux突然不能访问,linux找不到内核镜像,linux设频命令;
    linux上下左右变成a,linuxc计算器,linuxsnmp技术原理,linuxc网络,linux移动操作。

  • 相关阅读:
    微信小程序中自定义模板
    【C++风云录】解锁智慧之门:物联网安全工具和库助力打造安全可靠的智能家居
    猿人学-第二题
    vue3+ts项目03 element-plus、vue-router、pinia
    化妆品行业如何开启新零售模式?你懂了吗
    谷歌掀桌子!开源Gemma:可商用,性能超过Llama 2!
    聊聊最近很火的混合专家模型(MoE)
    雪花雪花雪花
    【云原生Kubernetes系列第四篇】KubeSphere(v3.1.1)学习---KubeSphere介绍和基于K8S的安装
    学习笔记:机器学习之支持向量机(五、线性支持向量机-合页损失函数)
  • 原文地址:https://blog.csdn.net/ouyangzhenxin/article/details/125328022