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

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

高老师5个月前 (05-17)大杂烩196

最近在执行自己的爬虫脚本时候发现以前逆向的接口存在封号问题,大概看了下新版本改动是增加了很多日志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软件,完整名称:...

Git推送文件到远程仓库

Git推送文件到远程仓库

1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...

Git从远程仓库更新文件

Git从远程仓库更新文件

 git   pull  https://git.oschina.net/392223903/learn.git   master   换为您的git地址...

Git日志查看和版本切换

Git日志查看和版本切换

日志查看:git log版本切换:方式1:git  reset  --hard  HEAD^   倒退一个版本git  reset  --hard  HEAD^^  倒退两个版本方式2:(版本号的形式,建议版本号码补充完...

c#关闭计算机的代码

c#关闭计算机的代码

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