抓取html页面中的json数据
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
遇见问题:
在开发爬虫时,我们有时需要抓取页面中的ajax的json数据。
解决方案:
采用正则表达式,高端大气上档次,重点是简洁,举个栗子:
html页面:
上面省去N行。。。。
var userLogin = function(){
var jsonBean = {
number:"177***7495",
intLoginType:"4",
areaCode:"0471",
isBusinessCustType:"N",
identifyType:"B",
userLoginType:"4",
password:"",
randomPass:"",
noCheck:"N",
isSSOLogin:"Y",
sRand:"SSOLogin"
};
下面省去N行。。。。
正则抓取数据:
public static void praseStr() {
String html = Models.readTxtFile("E:\\tmpTxt\\test0703.html");
String any ="[\\s\\S]*" ;//任何东西
StringBuffer regex = new StringBuffer("");
regex.append("(number.*)").append(any);//目标字段,下同
regex.append("(intLoginType.*)").append(any);
regex.append("(areaCode.*)").append(any);
regex.append("(isBusinessCustType.*)").append(any);
regex.append("(identifyType.*)").append(any);
regex.append("(userLoginType.*)").append(any);
regex.append("(password.*)").append(any);
regex.append("(randomPass.*)").append(any);
regex.append("(noCheck.*)").append(any);
regex.append("(isSSOLogin.*)").append(any);
regex.append("(sRand.*)").append(any);
Pattern p = Pattern.compile(regex.toString());
Matcher m = p.matcher(html);
int countAll = m.groupCount();
StringBuffer json = new StringBuffer("{");
if(m.find())
for (int i=1;i<=countAll;i++){
json.append(m.group(i)) ;
}
System.out.println(json.append("}").toString() );
}
抓取结果:
{number:"177***7495",intLoginType:"4",areaCode:"0471",isBusinessCustType:"N",identifyType:"B",userLoginType:"4",password:"",randomPass:"",noCheck:"N",isSSOLogin:"Y",sRand:"SSOLogin"}
GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
6be4e856
4 天前
663058e7
6 天前
更多推荐
已为社区贡献2条内容
所有评论(0)