1.分析网站数据接口
网站通过访问接口history.aspx获取数据
接口必要参数
其中url是处理后的商品地址,token是加密后的参数
data = {'DA': '1','action': 'gethistory','url': url,'token': token,}
发现加密网址获取token的地方
获取后的加密js
获取数据
2.分析网站图表加载
加载图表的函数
flotChart.chartNow(json.datePrice, json.spUrl, “pc”);
图表所需div
<div id="container"></div>
3.本地重建
因为不能跨域请求所以通过后台访问数据接口
4.token获取源码
源码获取传送门
=========================================================
5.网站更新
最近发现网站更新了,请求接口的参数和接口什么的都变了,本来想花点时间研究通,可是因为上班时间不够就只弄了一半。
生成token和Authorization所需的值,获取了id="ticket"的value
id=“ticket”
我暂时没弄清楚这个ticket标签是通过什么方式注入的值,所以直接通过后台java爬虫获取网页中最新的该标签值,然后传到我的项目前端
@RequestMapping("/index")public String index(Model model) throws IOException {Document document = Jsoup.connect(OIL_PRICE_URL).get();Elements ticket = document.select("#ticket");String value = ticket.attr("value");System.out.println(ticket);System.out.println(value);model.addAttribute("token",value);return "index";}
通过调用js获取需要的所有参数
老规矩不能跨域请求,将参数传回后端去请求数据
@RequestMapping("/getData")@ResponseBodypublic String getData(@RequestBody Parameter param) throws Exception {String URL = "https://tool.manmanbuy.com/api.ashx";Map<String, String> map = beanToMap(param);return post(URL,map);}