javascript - java的爬虫是不是只能抓到实际存在的数据?对于动态数据好像抓不到?

 mobiledu2502881047 发布于 2022-11-12 08:44

java代码

import java.io.*;
import java.net.*;
public class CatchPage {
 public static void main(String[] args) {
  // 定义即将访问的链接
  String url = "http://127.0.0.1:8080/Tests3/admin/login.jsp";
  // 定义一个字符串用来存储网页内容
  String result = "";
  // 定义一个缓冲字符输入流
  BufferedReader in = null;
  try {
   // 将string转成url对象
   URL realUrl = new URL(url);
   // 初始化一个链接到那个url的连接
   URLConnection connection = realUrl.openConnection();
   // 开始实际的连接
   connection.connect();
   // 初始化 BufferedReader输入流来读取URL的响应
   in = new BufferedReader(new InputStreamReader(
     connection.getInputStream(),"utf-8"));
   // 用来临时存储抓取到的每一行的数据
   String line;
   while ((line = in.readLine()) != null) {
    //遍历抓取到的每一行并将其存储到result里面
    result += line;
   }
  } catch (Exception e) {
   System.out.println("发送GET请求出现异常!" + e);
   e.printStackTrace();
  }
  // 使用finally来关闭输入流
  finally {
   try {
    if (in != null) {
     in.close();
    }
   } catch (Exception e2) {
    e2.printStackTrace();
   }
  }
  System.out.println(result);
 }
}

这是html代码




  


  

dataContainer的p里面的内容是ajax从后台接口获取出来显示的 。

但是我用java爬虫好像 只能抓到如下代码




  


  

有没有办法把dataContainer的p里面的数据也一起抓出来?

4 个回答
  • 自己写就要找AJAX路径了。。。框架的爬虫简单WebCollector

    2022-11-12 10:59 回答
  • 两个办法,一个找到中间内容ajax的链接,直接请求该链接来获取内容。
    一个通过phantomjs,也就是浏览器方式,页面完全加载了,通过浏览器API获取网页内容

    2022-11-12 10:59 回答
  • 找到填充dataContainer的ajax代码,直接请求那个就可以了
    一起抓就需要让一个完整的浏览器来请求页面,处理js代码了,比如.net下的webbrowser控件

    2022-11-12 10:59 回答
  • 需要用httpclient来模拟浏览器请求,来获取。也可以用jsoup, spring resttemplate

    2022-11-12 10:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有