鱼C论坛

 找回密码
 立即注册
查看: 2802|回复: 1

求助,如何提取这种jsp网页的数据?

[复制链接]
发表于 2019-12-9 10:09:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
网址:http://1s1k.eduyun.cn/portal/redesign/index/index.jsp?t=2&sdResIdCaseId=8aee80cf6b0ac5ae016b0eb0b0ae1f90&sessionKey=CSyfWqWo37UrNHt6jUG0

目标:希望用xpath提取网页中教师、地区、学校等信息

试过用splash渲染,发现目标信息渲染不出来,从网页源码分析应该是通过POST方法传值到/resource/resource/RedesignCaseView/report.jspx?caseId=8aee80cf6b0ac5ae016b0eb0b0ae1f90&title=996C24E1DC9E34D53A01EC4607865339&caseUserId=8aee80aa6b059d1c016b06b24ebf0050这个网址返回的,但不知道如何提取,求教高手
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-12 15:53:13 | 显示全部楼层
本帖最后由 指头比思想慢 于 2019-12-12 15:57 编辑

研究了一下这个网站,首先少不了要构造user-agent和cooike
然后拿到未渲染的页面,该页面是通过
  1. function main1s1kDiv(url,params){//main_1s1k这个div填充页面
  2.                 $.ajax({ contentType: "application/x-www-form-urlencoded",
  3.                         type : "POST",
  4.                         url : url+ new Date().getTime(),
  5.                         data : params,
  6.                         success : function(msg) {
  7.                                 $("#main_1s1k").html('');
  8.                                 $("#main_1s1k").html(msg);// 返回结果填充div
  9.                         }
  10.                 });
  11.         }
复制代码

这个方法通过POST拿到渲染文本的,其中这个url可以在已经拿到的未渲染页面中找到,如下:
  1. else {
  2.                                                             phoneFlag = "0";
  3.                                                                 url='http://1s1k.eduyun.cn/resource/resource/RedesignCaseView/viewCaseBbs1s1k.jspx?date=';
  4.                                                                 params='code=-1&sdResIdCaseId=8aee80cf6b0ac5ae016b0eb0b0ae1f90&flags=&guideId=&sk=';//flags字段用来标识
  5.                                                                 main1s1kDiv(url,params);
  6.                                                 }
复制代码

通过观察我发现这个资料页面完整的路径组成应该是这样的:
  1. http://1s1k.eduyun.cn/resource/resource/RedesignCaseView/viewCaseBbs1s1k.jspx?date=1576134417202&code=-1&sdResIdCaseId=8aee80cf6b0ac5ae016b0eb0b0ae1f90&flags=&guideId=&sk=&sessionKey=shCB5ugQHLL8IcHj6Bfs
复制代码

对比了一下,我们现在还差date和sessionkey这两个。
在前面的js方法里有一句url : url+ new Date().getTime(),很明显data是用本地时间构造的,解决
然后还有sessionkey
看看一开始你提供的url地址最后一段就是sessionkey

我就是分析了一下,没有完整实现,你实现了告诉我一声
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-21 07:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表