zoukankan      html  css  js  c++  java
  • selenium模块

    一、selenium介绍

    selenium最初是一个测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题

    selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器

    二、selenium安装

    pip3 install selenium
    #下载chromdriver.exe放到python安装路径的scripts目录中
    #国内镜像地址:http://npm.taobao.org/mirrors/chromedriver/
    #官网地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
    ###安装验证
    from
    selenium import webdriver driver=webdriver.Chrome() #弹出浏览器 driver.get('https://www.baidu.com') ##访问百度网址

    三、常用方法

    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    import time
    
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")
    wait = driver.implicitly_wait(10)  #隐式等待,等所有,默认等10秒
    
    #显示等待的用法
    # wait = WebDriverWait(driver,10)  #显示等待,等指定的,和EC配合这使用
    # wait.until(EC.presence_of_element_located((By.ID,"kw")))
    # 如果显示等待是不能进行点击的,如果要点击,就得按照下面这样的方式,而隐式等待就不用考虑这个问题了。
    # button = wait.until(EC.element_to_be_clickable((By.ID,"kw")))
    # button.click()
    try:
        # 1、find_element_by_id通过id来找
        # tag = driver.find_element_by_id("su")
        # print(tag.get_attribute("value"))  #获取上面这个标签的属性
        # 2、find_element_by_link_text通过有链接的文本去找
        # login = driver.find_element_by_link_text("登录")
        # print(login.get_attribute("href"))
        # login.click()  #点击登录按钮
        # 3、find_element_by_partial_link_text 找到包含这个录字的链接文本去找
        # login =  driver.find_element_by_partial_link_text("录")
        # login.click()
        # 4、find_element_by_tag_name通过标签的名字去找
        # print(driver.find_element_by_tag_name("a"))
        # time.sleep(5)
        # 5、find_element_by_class_name通过类名去找
        # print(driver.find_element_by_class_name("tang-pass-footerBarULogin"))
       # 6、通过css选择器找
       print(driver.find_element_by_css_selector("#kw"))
    finally:
        driver.quit()
  • 相关阅读:
    Unity3D中的Attribute详解(二)
    Unity3D中的Attribute详解(三)
    利用TortoiseGit对Coding项目进行版本管理
    access 标准表达式中数据类型不匹配 (20091204 15:14:40)
    发布网站失败,提示一个用户控件同时存在于C盘的两个dll中
    取出被正则表达式匹配的值
    Asp.net(C#)数据绑定格式化(转)
    一个关于 asp.net 的简单问题
    ckeditor + ckfinder 上传图片的配置
    [原]可定义的英文小日历
  • 原文地址:https://www.cnblogs.com/zhangb8042/p/9511997.html
Copyright © 2011-2022 走看看