当前位置: 首页 > 面试题库 >

用Java获取网站源

慕容弘懿
2023-03-14
问题内容

我想使用Java来获取网站的源(安全),然后解析该网站以获取其中的链接。我已经找到了如何连接到该URL的方法,但是然后我如何才能轻松地仅获取源代码,更喜欢作为DOM
Document oso来获取我想要的信息。

还是有更好的方法连接到https站点,获取源代码(我很容易做到以获取数据表…非常简单),然后这些链接就是我要下载的文件。

我希望它是FTP,但是这些是存储在我的Tivo中的文件(我想以编程方式将它们下载到我的计算机中(


问题答案:

您可以得到低级别的请求,只需通过套接字请求即可。在Java中看起来像

// Arg[0] = Hostname
// Arg[1] = File like index.html
public static void main(String[] args) throws Exception {
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();

    SSLSocket sslsock = (SSLSocket) factory.createSocket(args[0], 443);

    SSLSession session = sslsock.getSession();
    X509Certificate cert;
    try {
        cert = (X509Certificate) session.getPeerCertificates()[0];
    } catch (SSLPeerUnverifiedException e) {
        System.err.println(session.getPeerHost() + " did not present a valid cert.");
        return;
    }

    // Now use the secure socket just like a regular socket to read pages.
    PrintWriter out = new PrintWriter(sslsock.getOutputStream());
    out.write("GET " + args[1] + " HTTP/1.0\r\n\r\n");
    out.flush();

    BufferedReader in = new BufferedReader(new InputStreamReader(sslsock.getInputStream()));
    String line;
    String regExp = ".*<a href=\"(.*)\">.*";
    Pattern p = Pattern.compile( regExp, Pattern.CASE_INSENSITIVE );

    while ((line = in.readLine()) != null) {
        // Using Oscar's RegEx.
        Matcher m = p.matcher( line );  
        if( m.matches() ) {
            System.out.println( m.group(1) );
        }
    }

    sslsock.close();
}


 类似资料:
  • 问题内容: 我需要抓取一个网站,其内容由Angular“插入”。它需要用java完成。 我已经尝试过Selenium Webdriver(因为我之前曾使用Selenium来抓取较少动态的网页)。但是我不知道如何处理Angular部分。除了页面顶部的script标签之外,网站中只有一个地方具有Angular属性: 我在这里找到了这篇文章,但是说实话…我不知道。看来作者正在选择(这样称呼他们)’ng-

  • cmf_get_site_info() 功能 获取后台管理设置的网站信息,此类信息一般用于前台 参数 无 返回 array 网站信息

  • 问题内容: 因此,我正在开发一个应用程序来存储所有用户喜欢的应用程序的快捷方式,就像集线器一样。我可以支持实际文件,并且可以使用快捷方式解析器。我认为应用程序也支持Internet快捷键也将非常不错。这就是我在做什么: 假设我要获取Google的图标()。 首先,我摆脱掉多余的页面(例如将成为)。 然后,我用来获取图像。 问题是,当我调用此方法时,永远不会返回Image: 现在我有两个问题: Ja

  • 本文向大家介绍java实现获取网站的keywords,description,包括了java实现获取网站的keywords,description的使用技巧和注意事项,需要的朋友参考一下 获取网站的<meta name="keywords" content="" />和<meta name="description" content="“>关键字和描述内容 实现HTML解析器jsoup 下载jso

  • 本文向大家介绍WordPress 获取网站标语,包括了WordPress 获取网站标语的使用技巧和注意事项,需要的朋友参考一下 示例 输出结果 基于这些样本设置

  • 本文向大家介绍WordPress 获取网站标题,包括了WordPress 获取网站标题的使用技巧和注意事项,需要的朋友参考一下 示例 要么 输出结果 基于这些样本设置