最近爬取某网站,发现整个网页都是JavaScript渲染生成的!!!而且我需要的数据不是通过ajax或jsonp来获取的,也就没有清晰易读的json文件给我们,此时使用正常的爬取手段已经不能实现数据的爬取了

这里我想到3个办法来完成爬取,

第一种是使用selenium模拟登陆(必须在登陆以后才能查看数据),同时需要使用代理池和很多账号,速度不快,但是能慢慢跑。

第二种是分析6万行js代码!!!找到它是怎么获取数据的!!!然后在爬取。。。。。这种方法直接pass

第三种是使用pyv8这个库来进行JavaScript代码运行,然后获取需要的数据,下面介绍pyv8的安装

安装依赖

首先安装依赖:Boost, 这一步网上的大部分教程都差不多,也是必须的;

sudo apt-get install scon
sudo apt-get install libboost-dev libboost-thread-dev
sudo apt-get install libboost-system-dev libboost-python-dev

将Boost安装好后 安装pyv8

pip install pyv8

如果出错就只能手动下载pyv8了,这里在CSDN上有很多个个版本的,也可以通过百度云下载

下载解压后将2个文件 cp到相应的位置  我这里是py3 /usr/lib/python3/dist-packages/

然后在进入编辑器导入pyv8试试能不能解析成功,这里提供一个代码

import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval("""
  (function(){
    function hello(){
      return "Hello world.";
    }
    return hello();
  })
""")

print(func())

这里就完成了pyv8的安装,然后愉快的解析吧~~

当然,99%的网站反爬虫都没有这么严,成本太高,还经常误伤平民!!!

安装和使用pyv8解析JavaScript相关推荐

  1. Python爬取鬼吹灯2(周建龙)(PyV8解析js)

    Python爬取鬼吹灯2有声小说(PyV8解析js) 偶然在一个网站http://www.ting56.com/ 上面看到有鬼吹灯2的周建龙老师的作品,又不想在电脑上面听,于是就想用python爬下来 ...

  2. 深入解析Javascript中this关键字的使用

    深入解析Javascript中面向对象编程中的this关键字 在Javascript中this关键字代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function TestFun ...

  3. 浏览器解析JavaScript原理

    1.浏览器解析JavaScript原理特点: 1.跨平台  2.弱类型 javascript 定义的时候不需要定义数据类型,数据类型是根据变量值来确定的.    var a = 10; 数字类型   ...

  4. 解析JavaScript中的字符串类型与字符编码支持

    JavaScript中的字符串也像Python那样支持反斜杠的转移,并且字符集方面默认为Unicode,下面就来详细解析JavaScript中的字符串类型与字符编码支持 定义 字符串就是零个或多个排在 ...

  5. javascript递归遍历文件夹下面的所有文件并返回所有文件全路径名称数组以及解析JavaScript方法体字符串的结束位置

    一.前端脚本经常需要用到遍历指定文件夹下面的所有文件(包含子文件夹)的内容并做特定的逻辑处理,下面给出同步遍历的方式,开箱即用. const fs = require('fs');main()func ...

  6. JavaScript(三)—— JavaScript 函数/JavaScript 作用域/JavaScript 预解析/JavaScript 对象

    本篇为 JavaScript 系列笔记第三篇,将陆续更新 JavaScript(一)-- 初识JavaScript/注释/输入输出语句/变量/数据类型 JavaScript(二)-- JavaScri ...

  7. 深度解析javaScript常见数据类型检查校验

    前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean Null Un ...

  8. 2021年高处作业安装拆除维护证考试题库及安装拆除维护试题解析

    题库来源:特种作业模考题库小程序 2021年安装拆除维护证考试题库及安装拆除维护试题解析是结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的安装拆除维护在线模拟 ...

  9. weex 打包成android的apk之后安装提示安装包解析错误

    今天测试weex build android 命令打包成apk文件之后再安卓上安装出现"安装包解析错误",但是用 weex run android 生成的可以直接安装,后面上网查了 ...

最新文章

  1. STL priority_queue sort 自定义比较终极模板
  2. jQuery Alert Dialogs (Alert, Confirm, Prompt Replacements)(翻译)
  3. Java 时期格式 星期显示英文
  4. 对话高博(一)| 机器码、Pascal,以及计算机学习的分形
  5. PHP Token(令牌)设计
  6. c#中connect函数_C#.NET 各种连接字符串
  7. Python安装Matplotlib,wordcloud,jieba第三方库
  8. 投行称在三季度所产iPhone中 iPhone 13将超过35%
  9. java中break和return的区别_java 中return和break的区别
  10. 共迎海量数据库管理挑战 中韩数据库专家对话北京
  11. Struts2 基础入门
  12. ddwrt php,DDWRT脱机下载+架设网站修正加强版tar.gz模式发布
  13. Javascript实现简单的超级马里奥小游戏
  14. 月结6 - AR和AP重分类(Regroup)[FAGLF101/OBBU/OBBV]
  15. ASM、AAM算法介绍
  16. 计算机18个专业方向
  17. VS2005编译器选项
  18. WAIC预热 | 赋能企业数字化转型,容智信息×亿欧“AI商业落地论坛”重磅来袭
  19. ROS2_foxy教程总结(自用)
  20. 哪些靠谱的方法能在十年内赚 3000 万?

热门文章

  1. 嵌入式Linux系统相关练习
  2. 求职面试中修饰与衣着
  3. 建立通讯录python增删改查_python 字典使用实例:创建通信录并完成修改、查找操作...
  4. java获取mysql的数据_【助教】Java获取数据库数据展示
  5. Photoshop一键制作从序列图导出GIF
  6. Python调用微信截图工具
  7. Matlab比较2个 二维矩阵 或 二维图像 相似度的方法总结
  8. 电子产品EMC电磁兼容风险评估读书笔记(一)
  9. 如何使用交换机、路由器及防火墙进行组网以及他们之间的功能和区别
  10. Java-Runoob-高级教程-实例-数组:07. Java 实例 – 数组合并