zoukankan      html  css  js  c++  java
  • 【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异常。

  • 相关阅读:
    Solution 「UVA 1104」Chips Challenge
    Solution 「WF2011」「BZOJ #3963」MachineWorks
    Solution 「洛谷 P4198」楼房重建
    Solution 「HDU 6643」Ridiculous Netizens
    Solution 「多校联训」排水系统
    [非专业翻译] Mapster 配置位置
    [非专业翻译] Mapster 使用特性标签配置映射
    [非专业翻译] Mapster 自定义命名约定
    [非专业翻译] Mapster 配置实例
    [非专业翻译] Mapster 自定义映射
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12080654.html
Copyright © 2011-2022 走看看