• 【python爬虫】动态html


    一、反爬策略 

      1、请求头

        ——user-agent
        ——referer
        ——cookie

      2、访问频率限制

        ——代理池
        ——再用户访问高峰期进行爬取,冲散日志。12-13 7-10
        ——设置等待时长。time.sleep(3)

      3、ajax异步请求,用接口获取数据

      4、能一次性获取的数据,绝不发送第二次请求(获取数据的过程中尽量减少请求次数)

      5、页面内容是js代码

        selenium+phantomjs的组合进行页面内容的获取

    二、html页面的技术

      1、js:页面在请求html的过程中,服务器返回html,同时还会请求js文件。
      2、jqery:js的库,方便js开发。
      3、ajax:web的异步请求技术

    三、selenium和phantomjs

      1、什么是selenium?

        selenium一个web自动化测试工具。【但是它本身是不带浏览器】。这个工具其实就是作为一些外部工具驱动来使用的,可以控制一些外部应用来完成自动化测试。

      2、phantomjs

        是一个内置无界面浏览器引擎。--无界面可以提高程序运行速度。
        因为phantomjs是一个浏览器引擎,所以他最大的功能就是执行页面的js代码。

      3、安装selenium和phantomjs

        selenium安装:pip install selenium==2.48.0
        phantomjs安装:百度phantomjs镜像--->下载一个Windows版本的————>phantomjs-2.1.1-windows.zip

        可视化的chrome浏览器插件:---chromedriver安装:
        下载:百度:chromedriver镜像

          (1)保证chrome是正版。
          (2)查看自己chrome的版本号:73.0.3683.86
          (3)找一个和自己版本号最接近的版本下载。

        将下载好的exe文件复制到:C:Anaconda3Scripts

     

     

    四、selenium的使用

      步骤

        1、创建驱动

          driver = webdrivre.Phantomjs()

        2、请求url

          driver.get(url)

        3、等待

          有三种等待方式:
          (1)强制等待:time.sleep(2)
          (2)隐式等待:driver.implicitly_wait(20)
          (3)显示等待:等待设定的条件加载完成为止

        第二种和第三种等待,如果在最大等待时长内还没有完成等待条件,就会抛出timeout异常。

  • 相关阅读:
    谈谈surging引擎的tcp、http、ws协议和如何容器化部署
    Surging如何使用Swagger 组件测试业务模块
    Ocelot简易教程(七)之配置文件数据库存储插件源码解析
    [转载]Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据
    [转载]Ocelot简易教程(五)之集成IdentityServer认证以及授权
    [转载]Ocelot简易教程(四)之请求聚合以及服务发现
    [转载]Ocelot简易教程(三)之主要特性及路由详解
    [转载]Ocelot简易教程(二)之快速开始2
    [转载]Ocelot简易教程(二)之快速开始1
    Next Permutation
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12080654.html
Copyright © 2020-2023  润新知