zoukankan      html  css  js  c++  java
  • 学习笔记-Python-爬虫5-Selenium + PhantomJS

    # 动态HTML
    - JavaScript
    - jQuery
    - Ajax
    - DHTML
    - Python采集动态数据
    - 从JavaScript代码入手采集
    - Python第三方库运行JavaScript,直接采集你在浏览器看到的页面
    # Selenium + PhantomJS
    - Selenium:web自动化测试工具(操纵浏览器)
    - 自动加载页面
    - 获取数据
    - 截屏
    - 安装:pip install selenium==2.48.0
    - 官网:http://selenium.python.readthedocs.io/index.html
    - Selenium库有一个WebDriver的API
    - WebDriver可以跟页面上的元素进行各种交互,用它来进行爬取
    - 下载完chromedriver并配置完成环境变量之后,如果webdriver.Chrome()还是无法使用,可以把chromedriver.exe文件放在当前目录
    - PhantomJS(幽灵浏览器)
    - 基于webkit的无界面的浏览器
    - 官网:http://phantomjs.org
    - 案例v36
    - chrome + chromedriver
    - 下载安装chrome
    - 下载安装chromedriver
    - 在尤班图下安装方法:
    aptitude search chromedriver
    aptitude install chromium-chromedriver
    # 一、查看chromedriver安装位置
    dpkg -L chromedriver
    # 进入查找到的目录
    cd /usr/lib/chromium-browser/
    # 查到进入到的目录下有什么
    ls chromedriver
    # 运行这个文件
    ./chromedriver
    # 二、做配置
    cd /usr/bin/
    # 找chromedriver链接(相当于windows的快捷方式)
    ll chromedriver
    - Selenium操作主要分两大类
    - 得到UI元素
    - find_element_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
    - 基于UI元素操作的模拟
    - 单击
    - 右键
    - 拖拽
    - 输入
    - 可以通过导入ActionsChains类做到
    - 案例v37

    # 案例v37
    from selenium import webdriver
    import time
    from selenium.webdriver.common.keys import Keys
    
    # Chrome有时候可能找不到,需要手动添加路径
    driver = webdriver.Chrome()
    url = "http://www.baidu.com"
    driver.get(url)
    
    text = driver.find_element_by_id("wrapper").text
    print(text)
    print(driver.title)
    # 得到页面的快照
    driver.save_screenshot('index.png')
    
    # 找到id是kw的输入框,输入大熊猫
    driver.find_element_by_id('kw').send_keys(u"大熊猫")
    # su是百度搜索按钮的id,用click模拟点击
    driver.find_element_by_id('su').click()
    time.sleep(5)
    driver.save_screenshot("daxiongmao.png")
    
    # 获取当前页面的cookie
    cookies = driver.get_cookies()
    print('这里是cookies:',cookies)
    
    # 模拟输入两个按键ctrl+a
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
    # ctrl+x是剪切快捷键
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
    
    driver.find_element_by_id("kw").send_keys(u'航母')
    driver.save_screenshot('hangmu.png')
    # 输入回车键
    driver.find_element_by_id("kw").send_keys(Keys.RETURN, 'x')
    time.sleep(5)
    driver.save_screenshot('hangmu2.png')
    
    # 清空输入框
    driver.find_element_by_id('kw').clear()
    driver.save_screenshot('clear.png')
    # 关闭浏览器
    driver.quit()

     

    
    
  • 相关阅读:
    SpringMVC是什么?
    SpringMVC工作原理
    SQL给字段加上统一的某个字符
    把数据库里的标签去掉
    Windows通过DOS命令进入MYSQL的方法
    mysql添加字段
    sqlserver查询最接近的记录
    LIST 排序
    Tsk4.5异步
    认识和使用Task
  • 原文地址:https://www.cnblogs.com/Cloudloong/p/10044733.html
Copyright © 2011-2022 走看看