爱回收网站,js请求过程分析

news/2024/4/28 23:23:59/文章来源:https://blog.csdn.net/weixin_34336526/article/details/88826474

aihuishou

最近在qq群里看到有个小伙伴在问爱回收网站怎么爬取手机价格信息。

爱回收网站,在网站中大量使用了js动态改变DOM元素,而且请求的参数使用的是paylaod加密。我们在分析网站的时候看不到参数,也就分析不出来请求参数的规律,这个问题可以通过fiddler抓包工具解决。刚开始分析确实有点懵,在此记录下我的分析过程。

工具;火狐浏览器,开发者模式 Fiddler

前面各个分类的分析还是比较简单,所需内容都在网页源码中有,可以直接找到。主要是请求价格的过程有点复杂。

首先看看网站是如何发送POST请求价格的
我们以http://www.aihuishou.com/prod...:

clipboard.png

必须选择要提交的选项才能提交查询价格,这里我们随便选择几个选项,查找买免费询价的元素看到href是:

clipboard.png

重点来了这里点击免费询价之后,网站直接跳转到价格的页面网址是:http://www.aihuishou.com/pc/i...,我们来找下http://www.aihuishou.com/user...,

clipboard.png

这时候发现没有网址的请求,这时猜测是重定向了。这时候我们需要知道请求了什么导致重定向,打开fiddler,重新回到刚才,点击免费询价。然后在fiddler中找到发送的http://www.aihuishou.com/user...:

clipboard.png

clipboard.png

可以发现是个post请求,返回的是一个json格式的数据,我们看到里面有个redirectUrl,参数是"/pc/index.html#/inquiry/1516201064093351267”, 看到这个心中有没有感到一喜,对比这个和跳转后的页面,发现惊奇的相似。访问下这个网址,正是我们要找的价格的页面。

此时是不是有点大功告成的感觉,然后我们在页面中提取我们要的数据,结果并没有发现,这时猜测可能是请求的是json数据,然后动态加载到页面中的,这这是我们通过火狐浏览器的开发者功能,找到了真正数据的请求:
clipboard.png

发现后面的数字就是url后面的数字,这是我们重新构造这个http://www.aihuishou.com/port...。

现在整个过程明朗了,但是还有一个问题,最初的POST请求的参数怎么来的, 我们回过头重新看下http://www.aihuishou.com/user...。

在火狐开发者模式下,我们可以看到免费询价这个元素对应触发的click事件,

clipboard.png

function(a) {
a.preventDefault();
var l = $(this);
if (!l.hasClass("disabled") && W) {

if (!d.hasClass("hidden")) {var c = $.trim(o.val());if (!s(c)) return;n.imgCaptcha = c
}
n.PriceUnits = e(), ahs.PopWindow.Loading(!0), $.post(r, n, function(e) {ahs.PopWindow.Hide(), e.code ? 3001 === e.code ? i(e.data.captchaUrl) : 3002 === e.code ? (t(e.data.captchaUrl), alert("验证码有误")) : e.data.redirectUrl && (location.href = e.data.redirectUrl) : location.href = e.data.redirectUrl
})

}
}

可以看到js中有个post请求,请求的参数是r, n,r应该是请求的url,n是对应的POST参数,那么就要找到这个r, n,在js文件中,我们可以看到定义r, n参数的代码,就在这个函数的上面定义了:
var r = $submit.attr('href'),

n = {AuctionProductId: $submit.data('pid'),ProductModelId: $submit.data('mid')
};

这里我们可以看到r正是submit元素的href的值,n是submit元素属性中包含'pid', 'mid'的值,我们再看看fiddler抓到的参数应该有三个,还有一个priceUnits参数,我们js代码,发现,n.PriceUnits = e(),这个便是
第三个参数的由来,在js中搜索function e,可以找到 函数e的定义:
function e() {

  var e = [],t = [];return $('.base-property').find('li.checked').each(function () {e.push($(this).data('id'))}),F ? (e = a(e, t), e = e.concat(O), e.join(';'))  : (e = a(e, O), $('.appearance-property').find('li.checked').each(function () {t.push($(this).data('id'))}), c.filter('.function-property').find('li').each(function () {var e = $(this);t.push(e.hasClass('checked') ? e.data('id')  : e.data('default'))}), e = e.concat(t), e.join(';'))
}

大致的意思就是找到对应元素下包含'id'的属性的值加入到e的类表中,然后合并列表e,t,最后在用';'连接各元素。

这样,POST请求的三个参数都找到了,这个网站访问过快会有验证码,可以加代理绕过代理验证。


至此,整个询问价格的流程分析完成,还是由衷的感觉整个爬虫懂点js还是好处多多的! 如果想读源码,请移步github,链接是:https://github.com/allenshen3...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_747939.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教你在Nginx上使用CertBot把自己网站设置成HTTPS

前言 自己做了一个博客,需要访问自己的网站获取数据,但是系统默认只能直接访问https的网站。不想让应用改用http的服务。因此,研究如何启用https,本文即是介绍如何在CentOS上配合Nginx使用CertBot。 环境 Ubuntu Nginx 安装Ce…

10个有用的jQuery插件,可将Twitter整合到博客/网站中

我们都知道,Twitter已成为全世界最流行和盛行的社交网络之一,用于在线交流和讨论。 将Twitter带入您的网站将帮助您吸引访问者并宣传您的内容,而将Twitter集成到网站中的最简单方法是Tweeter本身创建的小部件? 现在不行了&#xf…

Python基础教程学习:遇到需要的登录的网站怎么办?学好python,用这3招轻松搞定

Python基础教程学习:遇到需要的登录的网站怎么办?学好python,用这3招轻松搞定 你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作。。。。。 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 把这几招…

jquery mobile_15个令人兴奋的jQuery Mobile网站示例

jquery mobile有数百个(甚至数千个)使用jQuery mobile构建的网站,所以今天我们将与您分享15个令人兴奋的jQuery mobile网站的集合,以获取您的想法和灵感。 陷入困境并享受乐趣! 相关文章: 50个jQuery Mob…

15个令人兴奋的jQuery Mobile网站示例

有数百个(甚至数千个)使用jQuery mobile构建的网站,所以今天我们将与您分享15个令人兴奋的jQuery mobile网站的集合,以获取您的想法和灵感。 陷入困境并享受乐趣! 相关文章: 50个jQuery Mobile开发技巧 聚…

python爬虫反反爬,你几乎可以横扫大部分 css 字体加密的网站

你已经知道了对方是 如何自定义字体加密的了 你要想去反反爬 你就要先站在对方的角度去思考问题 有句话这么说来着 “知己知彼,才能那啥” 那么对于像猫眼电影、大众点评等等 那样的 css 自定义字体加密 应该怎么破呢? 接下来就是 学习 python 的…

比较好的Java 网站

比较好的Java 网站javaboys 51cto技术博客[%title%][%count%]票 [[%percent%]%] 比较好的Java 网站1. The Source for Java Technology Collaboration(JAVA开发的官方网站) [url]http://www.java.net/[/url] - 外文 2. jGuru: FAQ Home Page 推荐 [url]http://www…

爬取某网站所有的乌云漏洞公共文章,并保存为pdf文件

鼎鼎大名的乌云网站,仅存在6年左右,就停摆,真是可惜。。。 从某网站爬取所有公开的乌云漏洞文章,保存为pdf格式,以作纪念学习使用 首先创建一个文件夹wooyun,把下面代码保存为test.py,然后放在该…

Nginx基础篇(八);Nginx访问认证、网站展示目录结构浏览网页

Table of Contents 一、参数说明 二、实现访问认证步骤 三、Nginx访问认证出现状态码403 forbidden的原因 四、在网站展示目录结构 需求:在实际工作企业中有时需要我们为网站设置访问账号和密码权限,这样操作后,只有拥有账号密码的人才能…

wp 新窗口插件_适用于您的WP网站的10个令人兴奋的新jQuery插件

wp 新窗口插件今天,我们将向您分享我们的jQuery驱动插件集合,这些集合为您喜欢的WordPress网站增加了凉爽和交互式效果。 请享用! 另请参阅: 100个WordPress jQuery插件 1.破坏性谈话 它是一个phono小部件,可让Word…

Nginx架构篇(三);LNMP架构实现discuz和wordpress搭建:MySQL多实例、主主及主从复制、读写分离及nfs网站代码集中式管理(后续可以为数据库添加MHA,DRBD)

文章目录一、环境搭建及主从复制基础知识二、NFS服务器的配置三、Nginx服务器的配置四、PHP服务器需要做的配置(两个PHP都是一样的配置)五、MySQL多实例:主主、主从复制,读写分离先给3307数据库和3308数据库做主主复制再给3307数据…

LNMP+zabbix监控平台部署(采用阿里云服务器一体化部署监控wordpress网站)

部署前须知: 一般情况下,我们是将其中Zabbix-Server、Zabbix-Proxy、Zabbix-Web、Zabbix-Database专门部署在一台独立服务器上,Zabbix-Agent一般部署在需要被监控的网站的服务器上。 由于资金限制,本人只有一台阿里云服务器,所以…

jQuery网站/博客-全球最佳

这是Internet上最好的jQuery网站和博客的集合(或者至少是到目前为止我发现的博客)。如果您想出现在此列表中,请发表评论并证明自己的理由。 相关文章: 进入互联网的十大jQuery Gurus blog.jquery.com 写更少,做更多&am…

2019升级版最新Python学习路线:关于电影购票网站实现的讲解

这次的Python学习路线跟大家讲一下关于电影购票网站的实现。这几天咱们国产的哪吒很火嘛! 1. 用户功能 同前面所有项目的用户功能,利用AjaxDjango系统认证QQ邮箱实现登陆注册 2. 用户未登陆会跳转到注册登录界面,登录后会返回至主页&#…

jquerymobile_使用jQueryMobile从桌面到移动网站的转换

jquerymobilejQuery Mobile是用于制作移动Web应用程序的强大框架。 但是,我们可以使用它将现有的桌面网站转换为移动形式吗? 可以使用MobilizeToday.com在线服务。 它们提供了基于小部件的模型,该模型将任何现有HTML内容表示到移动视图中。 …

使用jQueryMobile从桌面到移动网站的转换

jQuery Mobile是用于制作移动Web应用程序的强大框架。 但是,我们可以使用它将现有的桌面网站转换为移动形式吗? 可以使用MobilizeToday.com在线服务。 它们提供了基于小部件的模型,该模型将任何现有HTML内容表示到移动视图中。 背后的技术是X…

eyoucms 网站原创文章要怎样进行优化?

互联网一直都是在变化中的,而且百度、搜狗等搜索引擎的抓取方式也在不断的进行改变,这些都导致了网站优化手法的改变,如果说唯一没有变化的话就是对于原创文章的编写以及发布。但是要写出一个高质量原创的文章可不是一件简单的事情&#xff0…

用Python清理收藏夹里已失效的网站,快测试一下你的收藏夹吧

最近打开好多以前收藏的网站,发现好多都已经失效了,好多以前想看还没来得及看的内容,也找不见了。。。 失效的书签们 我们日常浏览网站的时候,时不时会遇到些新奇的东西,于是我们就默默的点了个收藏或者加书签。然而…

SEO删除网站的旧内容,对目前已有的排名有影响吗?

搜索引擎是一个动态变化的过程,而相对于网站而言,对于过往的内容,它都是一沉不变的,这就是为什么网站需要持续的推陈出新,才能使得整站排名保持长期的稳定。 但这里有一个问题,垂直行业的内容资源库是有限…

大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…