• Python爬虫教程-26-Selenium + PhantomJS


    Python爬虫教程-26-Selenium + PhantomJS

    • 动态前端页面 :
      • JavaScript:
        JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能
      • jQuery:
        jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互
      • ajax:
        Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。
        Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。
        Ajax 是一种用于创建快速动态网页的技术。
        Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
        通过在后台与服务器进行
      • DHTML:
        DHTML是Dynamic HTML的简称,就是动态的html(标准通用标记语言下的一个应用),是相对传统的静态的html而言的一种制作网页的概念。所谓动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本),其中css和客户端脚本是直接在页面上写而不是链接上相关文件。DHTML不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能在下载后仍然能实时变换页面元素效果的网页设计概念

    Python 采集动态数据

    • 从 JavaScript 代码入手采集
    • Python 第三方库运行 JavaScript,直接采集你在浏览器看到的页面

    Selenium + PhantomJS

    • Selenium:web 自动化测试工具
    • Selenium 官方文档:https://www.seleniumhq.org/docs/
    • Selenium 的功能:
    • 1.自动加载页面
    • 2.获取数据
    • 3.截屏
    • PhantomJS:基于 Webkit 的无界面浏览器
      • 由 Selenium 操作 PhantomJS

    Selenium 的安装

    • 如果使用的是 Anaconda:
      • 进入当前环境:(我的环境名为learn,如果只有一个base环境,忽略此步)

    activate learn

    • 安装 selenium

    conda install selenium

    • 当然也可以直接在 Pycharm 进行安装
      • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【selenium】>【install】
      • 具体操作截图:
        这里写图片描述
        这里写图片描述

    PhantomJS 的安装

    Selenium 的使用

    • Selenium 库有一个 WebDriver 的 API
    • WebDriver 可以跟页面上的元素进行各种交互,用它可以来进行爬取
    • 注意:使用 PhantomJS 时自动按照环境变量查找相应浏览器,如果没有配置环境变量就将路径作为参数
    • 案例代码28dhtml.py文件:https://xpwi.github.io/py/py爬虫/py28dhtml.py
    # Selenium 的使用
    
    # 通过 WebDriver 操作百度进行查找
    
    from selenium import webdriver
    import time
    
    
    # 通过 Keys 模拟键盘
    # 也就是放入需要输入的东西,就不用键盘输入了
    from selenium.webdriver.common.keys import Keys
    
    # 操作哪个浏览器就对哪个浏览器创建一个实例,这里是 PhantomJS
    # 自动按照环境变量查找相应浏览器,如果没有配置环境变量就将路径作为参数
    driver = webdriver.PhantomJS(executable_path=r"D:appphantomjs-2.1.1-windowsinphantomjs.exe")
    
    driver.get("http://www.baidu.com")
    
    # 通过函数查找 title 标签
    print("Title: {0}".format(driver.title))
    

    运行结果

    注意:如果没有配置环境变量就将自己的路径作为参数
    这里写图片描述
    红字不是出错,打印 title 成功才算使用成功

    更多文章链接:Python 爬虫随笔


    - 本笔记不允许任何个人和组织转载
  • 相关阅读:
    Kmeans中文聚类
    第四周周总结
    数据清洗第一天
    第三周周总结
    关于sqoop上传mysql数据到hive报错的问题
    天津东软实训第十一天——Hive连接JDBC
    天津东软实训第十天——Hive配置
    天津东软实训第九天——MapReduce实战
    天津东软实训第八天------倒排索引
    Intellij IDEA 创建maven项目,利用API操作HDFS
  • 原文地址:https://www.cnblogs.com/xpwi/p/9600969.html
Copyright © 2020-2023  润新知