当前位置:首页 > 大杂烩 > 正文内容

通过VUE管理的DOM对象进行爬取数据

高老师10个月前 (05-17)大杂烩306

最近在执行自己的爬虫脚本时候发现以前逆向的接口存在封号问题,大概看了下新版本改动是增加了很多日志event来检测我的行为是否合法,懒得再去改了,直接换真实浏览器加载页面,然后获取vue单页面的data变量数据。通过js获取有两种思路。


思路一是提取全局变量,

比如它的网站是用的nuxt,那么所有的变量都在挂载在windows下面,例如window.$nuxt,但是window.$nuxt实在太大了,去递归的时候浏览器为了性能问题跳过了。


思路二通过VUE绑定的DOM元素来查询,我们找到1个1元素绝对是VUE绑定的元素来进行测试,比如页面最小单位渲染的class,代码如下:

const element = document.querySelector('.qusetion-title'); 
if (element && element.__vue__) {
  const componentInstance = element.__vue__;
  console.log(componentInstance.$data); 
  console.log(componentInstance.$data.root.data);
} else {
  console.log('未找到对应的 Vue 组件实例。');
}

找到最小节点后可以继续向上找进行尝试,例如

const element = document.querySelector('.qusetion-title').parentElement.parentElement.parentElement


另外一种思路就是使用谷歌无头浏览器进行加载,然后监听浏览器的Fetch/XHR数据包就行,不想写代码可以直接用影刀处理。


扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/888.html

分享给朋友:

“通过VUE管理的DOM对象进行爬取数据” 的相关文章

svn自动更新到网站

svn自动更新到网站

【一】.钩子文件的设置和创建(1).打开hooks目录,可以看到有一个post-commit.tmpl文件,这是一个模板文件。复制一份,重命名为post-commit,将其用户组设为www,并设置为可执行。chown www:www post-commitchmod +x post-commit(2...

PHP安装mongodb扩展

PHP安装mongodb扩展

在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...

c#关闭计算机的代码

c#关闭计算机的代码

    1.关机Process.Start("shutdown", "-s -t 0");    2. 注销  Proc...

C# md5加密,C# md5加密代码

C# md5加密,C# md5加密代码

public static string GetMD5(string str) {     //创建MD5对象     MD5 md5 = MD5.C...

IIS7.0无法加载CSS的处理办法

IIS7.0无法加载CSS的处理办法

首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...

redis安装教程

redis安装教程

1.文件redis-2.6.14.tar.gz的上传 /home/john/创建rdtar文件夹 上传redis-2.6.14.tar.gz至rdtar文件夹  2.解压文件  cd /home/john/rdtar tar &n...