【python+Selenium】Selenium使用步骤解析

版权声明:可以转载奥 https://blog.csdn.net/Jiajikang_jjk/article/details/82940574

Selenium使用步骤解析

无关主题说明

        对于一个看其他东西看不进去的时候,最好的办法就是看一些自己感觉能看的懂,能看得进去并且自己喜欢看的一些东西,这样你就会有一种停不下来的节奏。所以下午到晚上中这段时间就有了这篇博文的出现。

正文说明

        Selenium是python的一个库,它是一个自动化工具,利用Selenium可以驱动浏览器执行特定的动作。比如点击,返回,下拉等操作。同时还能获取到要访问的页面的源代码,在爬虫过程中对于一些js动态渲染的页面来说,使用Selenium方式来抓取是非常好的选择。

Selenium使用分析步骤

说明:
        以下是博主在学习Selenium库时的一个分析步骤,也是本文的核心所在,文中从开始获取selenium包,配置ChromeDriver驱动到最后的异常算是对于Selenium一些常用的一个分析,也是对于使用的Selenium的一个步骤的简单总结。
        有些地方博主只是写出了重点,提示语,由于时间问题并没有深究,感兴趣的同学可以百度各种相关知识点,这是只是博主对于自己的总结归纳方便以后查看的一个小笔记而已!!!

selenium的用法
一:获取源码
     1:安装selenium包
     2:配置ChromeDriver驱动

     注:
     a:https://www.portablesoft.org/google-chrome-legacy-versions/ ----谷歌浏览器所以的版本
     b:http://chromedriver.storage.googleapis.com/index.html  ----------谷歌浏览器各个版本对应的驱动
     c:C:\Users\jiajikang\AppData\Local\Google\Chrome\Application  -----将解压的驱动放置在此处,然后配置到环境变量之中
     d: 然后将驱动复制到python.exe同目录下


     3:声明浏览器对象
    browser = webdriver.Chrome();
     4:然后就是调用浏览器对象
     5:获取链接
     6:得到网页源码:page_source
二:查找节点
   1:单个节点
      from selenium.webdriver.common.by import By
      input_first = browser.find_element(By.ID,'q')# 获取单个节点
   2:多个节点
      如果在我们查找的节点在页面中只有一个,可以使用find_element()方法,但是页面中有多个节点,find_elemend()只能查找到第一个
      所以就要使用:find_elements()
      input_second = browser.find_elements_by_css_selector('.service-bd li')# 获取多个节点
                             find_elements_by_id
                             find_elements_by_name
                             find_elements_by_xpath
                             find_elements_by_link_text
                             find_elements_by_partial_link_text
                             find_elements_by_tag_name
                             find_elements_by_class_name
                             find_elements_by_css_selector
      input_second = browser.find_elements(B_CSS_SELECTOR,'.service-bd li')# 获取多个节点

 三:节点交互
        简单就是:使浏览器模拟执行一些动作
        1: 输入文字: send_keys()
        2:  清空文字:clear()
        3:  点击按钮: click()

        input_first = browser.find_element(By.ID,'q')# 获取单个节点
        # input_second = browser.find_elements_by_css_selector('.service-bd li')# 获取多个节点
        # 第一次输入
        input_first.send_keys('iphone')
        time.sleep(1)
        input_first.clear()

        # 第二次输入
        input_first.send_keys('ipad')
        button = browser.find_elements_by_class_name('btn-search')
        button.click()
 四:动作链and执行js
     1: drag_and_drop()
        perform()
     2:execute_script()

 五:获取节点信息(解析)
    1:获取属性
        from selenium import webdriver # 驱动
        from selenium.webdriver import ActionChains

        browser = webdriver.Chrome()# 谷歌浏览器
        url = 'https://www.zhihu.com/explore'
        browser.get(url)

        logo = browser.find_element_by_id('zh-top-link-logo')
        print(logo)
        print(logo.get_attribute('class'))# 获取属性名

    2:获取文本
        browser = webdriver.Chrome()# 谷歌浏览器
        url = 'https://www.zhihu.com/explore'
        browser.get(url)
        input = browser.find_element_by_class_name('zu-top-add-question')
        print(input.text)
    3:获取id,位置,标签名和大小
        browser = webdriver.Chrome()# 谷歌浏览器
        url = 'https://www.zhihu.com/explore'
        browser.get(url)
        input = browser.find_element_by_class_name('zu-top-add-question')
        print(input.id)
        print(input.location)
        print(input.tag_name)
        print(input.size)
 六:切换Frame
        switch_to.frame()

 七:延时等待
    1: 隐式等待
      browser = webdriver.Chrome()# 谷歌浏览器
      browser.implicitly_wait(10)
    2: 显示等待
      from selenium.webdriver.support.ui import WebDriverWait
      wait = WebDriverWait(browser,10)

 八:前进和后退
        back(),forward()
        import time
        from selenium import webdriver # 驱动
        borwser = webdriver.Chrome()
        borwser.get('https://www.baidu.com/')
        borwser.get('https://www.taobao.com/')
        borwser.get('https://www.python.org/')

        borwser.back()
        time.sleep(1)
        borwser.forward()
        borwser.close()

 九:异常处理
        try...except

        from selenium import webdriver
        from selenium.common.exceptions import TimeoutException,NoSuchElementException
        browser = webdriver.Chrome()
        try:
            browser.get('https://www.baidu.com')
        except TimeoutException:
            print("超时")
        try:
            browser.find_element_by_id('hello')
        except NoSuchElementException:
            print("没有这样的元素")
        finally:
            browser.close()

猜你喜欢

转载自blog.csdn.net/Jiajikang_jjk/article/details/82940574