美文网首页
四、selenium常用功能

四、selenium常用功能

作者: 风风歌455 | 来源:发表于2019-07-28 18:46 被阅读0次

    1、其常用的功能包括:设置浏览器的参数、浏览器多窗口切换、设置等待时间、文件的上传与下载、cookies处理以及frame框架的操作。

    常用的设置:浏览器的可视化(加快代码的请求速度)和浏览求的请求头等信息(防反爬虫机制)

    from selenium import webdriver

    from selenium.webdriver.chrome.options import Options

    url = 'https://movie.douban.com/'

    chrome_options = Options()

    chrome_options.add_argument('--headless') #--headless表示不显示浏览器的操作过程

    chrome_options.add_argument('lang=zh_CN.UTF-8') #设置参数防反爬虫

    UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0'

    chrome_options.add_argument('UserAgent=' + UserAgent)

    driver = webdriver.Chrome(chrome_options=chrome_options) #启动设置的参数

    driver.maximize_window() #浏览器窗口最大化

    driver.minimize_window() #浏览求窗口最小化

    driver.get(url)

    print(driver.title)  #获取网页标题

    print(driver.page_source)  #源码

    2、切换窗口来获取不同信息

    from selenium import webdriver

    import time

    url = 'https://movie.douban.com/'

    driver = webdriver.Chrome()

    driver.get(url)

    js = 'window.open("https://www.sina.com");'

    driver.execute_script(js)

    current_window = driver.current_window_handle #获取当前窗口信息

    handles = driver.window_handles    #获取打开的窗口信息

    time.sleep(2)

    driver.switch_to.window(handles[0])  #切换到第一个窗口

    time.sleep(2)

    driver.switch_to.window(handles[1])  #切换到第二个窗口

    3、设置等待时间让网页响应尽量达到同步,保证程序的少出bug。以上用time模块实现,接下来使用selenium库提供的方法实现,其比time模块的等待更智能。

    from selenium import webdriver

    from selenium.webdriver.support.wait import WebDriverWait

    from selenium.webdriver.common.by import By

    from selenium.webdriver.support import expected_conditions

    url = 'https://www.baidu.com'

    driver = webdriver.Chrome()

    driver.get(url)

    driver.implicitly_wait(10)  #隐性等待时间,最多10秒

    driver.find_element_by_id('kw').send_keys('哈哈')

    condition = expected_conditions.visibility_of_element_located((By.ID,'kw'))

    #.visibility_of_element_located检查页面元素是否可见

    #(By.ID,'kw')kw为搜索框属性,By.ID是使用find_element_by_id定位

    WebDriverWait(driver=driver, timeout=10, poll_frequency=0.5).until(condition)  #显性等待时间

    隐性等待时间:在设定时间内网页加载完成即刻自动执行下一步 ,否则抛出异常。

    显性等待时间:程序隔一段时间检测网页是否加载完成,完成继续执行,否则继续等待直到超时。

    4、cookie的添加、读取、删除操作

    from selenium import webdriver

    import time

    driver = webdriver.Chrome()

    driver.get("http://www.exame.com")

    time.sleep(2)

    driver.add_cookie({'name':'xixi','value':'123456'}) #添加cookie

    all_cookie = driver.get_cookies()  #获取所有cookie

    #print(all_cookie)

    cookie1 = driver.get_cookie('xixi')#获取一个cookie

    print(cookie1)

    driver.delete_cookie('xixi')

    #surplus_cookies = driver.get_cookies()

    #print(surplus_cookies)

    相关文章

      网友评论

          本文标题:四、selenium常用功能

          本文链接:https://www.haomeiwen.com/subject/oyaurctx.html