public static String getHtmlCode(String url,String charCode) throws IOException {
String htmlCode = "";
InputStream in = null;
HttpURLConnection connection=null;
try {
URL urlCon = new URL(url);
connection = (HttpURLConnection) urlCon.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.25 Safari/534.24");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setFollowRedirects(true);
connection.setInstanceFollowRedirects(false);
connection.setDefaultUseCaches(false);
in = urlCon.openStream();
int index = 0;
byte[] bytes = new byte[1024*100];
int count = in.read(bytes, index, 1024 * 100);
while (count != -1) {
index += count;
count = in.read(bytes, index, 1);
}
htmlCode = new String(bytes, charCode);
} catch (Exception e) {
e.printStackTrace();
}
finally{
if(in!=null)
in.close();
if(connection!=null)
connection.disconnect();
}
return htmlCode;
}
我要抓取一个页面的数据,但是因为访问的页面采用AJAX。使我读取的数据不完全。请问下该怎么写才能读取到全部的数据
Java 关于抓取异步的网页数据
答案:5 悬赏:30 手机版
解决时间 2021-03-11 03:55
- 提问者网友:温柔港
- 2021-03-10 19:36
最佳答案
- 五星知识达人网友:十鸦
- 2021-03-10 19:52
顺藤摸瓜,看那个ajax请求是post还是get方法,模拟一下把数据抓过来,不过这样写出的代码针对性太强,不具通用性
全部回答
- 1楼网友:渊鱼
- 2021-03-10 23:14
1. 用jsoup抓取生成页面后的静态信息,非常简单,会jquery的选择器就会用
2. 对于加载页面后通过ajax返回刷新的页面,没办法,请从发出的request返回xml或json的数据一条条分析,看是哪个
爬虫不可能任意条件下都适用的!
- 2楼网友:撞了怀
- 2021-03-10 22:48
顺藤摸瓜看到Ajax请求的POST或GET方法,模拟数据抓,但也有针对性的,写代码,不具有通用性
- 3楼网友:荒野風
- 2021-03-10 21:38
遵循它,看到的AJAX请求是POST方法来模拟数据抓,但这么写代码太针对不具备通用性
- 4楼网友:深街酒徒
- 2021-03-10 20:43
遵循它,看到的AJAX请求是POST方法来模拟数据抓,但这么写代码太针对不具备通用性
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯