java抓取doc数据_远程页面抓取数据Java-Jsoup

重页面抓取数据Java-Jsoup

package dex.gu.web.helper;

import

8005672.html

java.io

.IOException;

import

8005672.html

java.io

.UnsupportedEncodingException;

import java.security.MessageDigest;

import java.security.MessageDigestSpi;

import java.security.NoSuchAlgorithmException;

import java.util.Base64;

import java.util.Base64.Encoder;

import java.util.Map;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import org.jsoup.Connection;

import org.jsoup.Connection.Response;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

public class Main {

private static Map config;

private static String username="admin";

private static String userpwd="ad2312";

private static Encoder base64Encoder=Base64.getEncoder();

private static Pattern ptnKey=Pattern.compile("key=\'([0-9A-Z]+)\'");

public static String bytesToHexString(byte[] src){

StringBuilder stringBuilder = new StringBuilder("");

if (src == null || src.length <= 0) {

return null;

}

for (int i = 0; i 

int v = src[i] & 0xFF;

String hv = Integer.toHexString(v);

if (hv.length() 

stringBuilder.append(0);

}

stringBuilder.append(hv);

}

return stringBuilder.toString();

}

public static void main(String[] args) throws IOException, NoSuchAlgorithmException {

Logger log = LogManager.getLogger(Main.class);

//

// Document doc = Jsoup.connect("

8005672.html

url

")

// .data("username", "admin")

// .data("userpwd","a45611")

// .post();

//

//

Response resp = Jsoup.connect("

8005672.html

url

").execute();

Map cookies = resp.cookies();

Document loginDoc=Jsoup.parseBodyFragment(resp.body());

Element scriptDom = loginDoc.select("script").get(1);

String keyLine=scriptDom.data().split("\n")[1];

Matcher matcher = ptnKey.matcher(keyLine);

matcher.find();

String key=matcher.group(1);

Document docLoginDo = Jsoup.connect("

8005672.html

url

")

.cookies(cookies)

.data("username", username)

.data("psw",encodePassword(log, key))

.post();

Document doc = Jsoup.connect("

8005672.html

url

")

.cookies(cookies)

.get();

Element tableDom = doc.select("table").get(0);

Elements trDoms = tableDom.select("tbody>tr");

StringBuilder sb=new StringBuilder();

for(Element tr:trDoms){

for(Element td:tr.select("td")){

sb.append(td.html()+"\t");

}

sb.append("\n");

}

log.error(sb.toString());

/*

String key="50E8EAB7243BF34A513D26E51969362F";

String md5str = encodePassword(log, key);

String encodedPwd = md5str;

log.error(md5str);

*/

//log.error(doc.toString());

log.error("done!");

}

private static String encodePassword(Logger log, String key)

throws NoSuchAlgorithmException, UnsupportedEncodingException {

MessageDigest md5diges = MessageDigest.getInstance("MD5");

byte[] md5bytes = md5diges.digest(userpwd.getBytes("utf-8"));

String md5str = bytesToHexString(md5bytes);

log.error(md5str);

md5str=md5str+"_"+key;

md5bytes=md5diges.digest(md5str.getBytes("utf-8"));

md5str=bytesToHexString(md5bytes);

return md5str;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值