gpt4 book ai didi

java - 获取重定向到另一个网页的网页内容

转载 作者:行者123 更新时间:2023-11-30 06:41:13 25 4
gpt4 key购买 nike

我要抓取网页内容 - http://www.pgmfi.org/ 。但如果我们访问该页面,我们会看到它重定向到页面 - http://twiki.pgmfi.org/bin/view .

当我尝试使用 jsoupcrawler4j 从 URL ( http://www.pgmfi.org/ ) 抓取内容时,我得到了以下内容。

Looking for PGMFI.ORG Home ? Please wait redirecting to: http://twiki.pgmfi.org

但我想从该重定向网页 ( http://twiki.pgmfi.org/bin/view ) 获取有关该网页的更多信息。当我使用 jsoup 运行简单代码时,我发现了以下内容。

String url = "http://www.pgmfi.org/";

Response response = Jsoup.connect(url).followRedirects(false).execute();
System.out.println(response.statusCode() + " : " + response.url());

//check if URL is redirect?
System.out.println("Is URL going to redirect : " + response.hasHeader("location"));
System.out.println("Target : " + response.header("location"));

输出:

200 : http://www.pgmfi.org/
Is URL going to redirect : false
Target : null

因此,重定向显然不是直截了当的。我的问题 - 有什么办法,我可以在不解析 html 正文的情况下获取页面重定向到的 url?

我更喜欢使用crawler4j的解决方案。即使是 jsoup 中的解决方案也适合我。

最佳答案

crawler4j不支持从meta-refresh中提取URL 。然而,crawler4j提供相应的元标记(请参阅 HTMLParseData ),因此您可以增强 visit(...)方法将提取的 URL 添加到 Frontier WebCrawler 中的对象通过schedule(...) .

但是,Frontier只有private访问 WebCrawler因此不适用于您的具体子类。要修改它,您需要 (a) fork 它或 (b) 使用 Reflection API 更改访问修饰符。

另一种方法是在官方问题跟踪器 here 上提出问题.

关于java - 获取重定向到另一个网页的网页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44350210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com