1、在看到这个博主进行爬取ajax获取的数据时,获取ajax 请求时,请求时的参数会有url编码:
类似:keyword=%E7%BE%8E%E5%A5%B3
这里我知道是输入的关键字 美女
但是当我爬中国农民银行的数据时,也有类似的url编码,但是它是类似下图的筛选条件:
然后这里是中国农业银行的ajax请求:
http://ewealth.abchina.com/app/data/api/DataService/BoeProductOwnV2?i=1&s=15&o=0&w=%257C%257C%25E4%25BF%259D%25E8%25AF%2581%25E6%2594%25B6%25E7%259B%258A%257C%257C1%257C%257C%257C1%257C%257C0%257C%257C5
我需要的ajax参数有 :
i =1 ,s =15, o =0, w = “”,这里就可以看到w的编码了:
w= %257C%257C%25E4%25BF%259D%25E8%25AF%2581%25E6%2594%25B6%25E7%259B%258A%257C%257C1%257C%257C%257C1%257C%257C0%257C%257C5
我只知道我点了什么,但是不清楚w具体是什么,我直接把这一长串当参数时,会报下面的错误:
然后我用这个网站的urlDecode 解码 进行二次url 解码:
就是对第一次解码后得到的复制再进行解码:
第一次url解码:
第二次url解码:
这里我就得到了w = ‘||保证收益||1|||1||0||5’ ,再写入ajax参数就爬取成功了;
如果是一次编码的话,在network 里的 XHR 点击ajax请求,可以看到 view URL encoded ,点击只会显示一次解码的结果,需要再进行解码才是需要的内容