首页新闻找找看学习计划

java如何爬取动态加载页面??

0
悬赏园豆:5 [待解决问题]

鼠标滑动加载页面内容如何爬取??试了好久了不行嘞。。。

小程大序的猿的主页 小程大序的猿 | 初学一级 | 园豆:7
提问于:2019-09-22 11:15
< >
分享
所有回答(2)
0

python我知道 ,java不知道,python是用Selenium模块

小小咸鱼YwY | 园豆:599 (小虾三级) | 2019-09-23 08:43
0

以前笔记里的简单的小爬虫引用了jsoup不知道是不是你需要的
public static void main(String[] args) {
String url1=""; //传入你所要爬取的页面地址
InputStream is=null; //创建输入流用于读取流
BufferedReader br=null; //包装流,加快读取速度
StringBuffer html=new StringBuffer(); //用来保存读取页面的数据.
String temp=""; //创建临时字符串用于保存每一次读的一行数据,然后html调用append方法写入temp;
try {
URL url2 = new URL(url1); //获取URL;
is = url2.openStream(); //打开流,准备开始读取数据;
br= new BufferedReader(new InputStreamReader(is)); //将流包装成字符流,调用br.readLine()可以提高读取效率,每次读取一行;
while ((temp = br.readLine()) != null) {//读取数据,调用br.readLine()方法每次读取一行数据,并赋值给temp,如果没数据则值==null,跳出循环;
html.append(temp); //将temp的值追加给html,这里注意的时String跟StringBuffere的区别前者不是可变的后者是可变的;
}
//System.out.println(html); //打印出爬取页面的全部代码;
if(is!=null) //接下来是关闭流,防止资源的浪费;
{
is.close();
is=null;
}
Document doc=Jsoup.parse(html.toString()); //通过Jsoup解析页面,生成一个document对象;
Elements elements=doc.getElementsByClass("XX");//通过class的名字得到(即XX),一个数组对象Elements里面有我们想要的数据,至于这个div的值呢你打开浏览器按下F12就知道了;
for (Element element:elements) {
System.out.println(element.text()); //打印出每一个节点的信息;你可以选择性的保留你想要的数据,一般都是获取个固定的索引;
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

一切至于创新 | 园豆:111 (初学一级) | 2019-09-25 15:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册