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

jsoup可以处理元刷新重定向吗

苏鸿志
2023-03-14
问题内容

我在使用jsoup时遇到问题,我想从URL中获取一个文档,该文档将根据不起作用的元刷新URL重定向到另一个URL,以明确说明我是否输入了名为http://的网站URL
www.amerisourcebergendrug.com,它将根据元刷新URL
自动重定向到http://www.amerisourcebergendrug.com/abcdrug/,但我的jsoup仍然坚持使用http://www.amerisourcebergendrug.com,而不是重定向并从中获取http://www.amerisourcebergendrug.com/abcdrug/

Document doc = Jsoup.connect("http://www.amerisourcebergendrug.com").get();

我也尝试过使用

Document doc = Jsoup.connect("http://www.amerisourcebergendrug.com").followRedirects(true).get();

但两者都不起作用

任何解决方法?

更新: 页面可能使用元刷新重定向方法


问题答案:

更新(不区分大小写且相当容错

  • 根据规范(几乎)解析内容
  • 在首次成功解析的内容元数据,应使用
public static void main(String[] args) throws Exception {

    URI uri = URI.create("http://www.amerisourcebergendrug.com");

    Document d = Jsoup.connect(uri.toString()).get();

    for (Element refresh : d.select("html head meta[http-equiv=refresh]")) {

        Matcher m = Pattern.compile("(?si)\\d+;\\s*url=(.+)|\\d+")
                           .matcher(refresh.attr("content"));

        // find the first one that is valid
        if (m.matches()) {
            if (m.group(1) != null)
                d = Jsoup.connect(uri.resolve(m.group(1)).toString()).get();
            break;
        }
    }
}

正确输出:

http://www.amerisourcebergendrug.com/abcdrug/

旧答案:

您确定它不起作用吗?为了我:

System.out.println(Jsoup.connect("http://www.ibm.com").get().baseUri());

.. http://www.ibm.com/us/en/正确输出..



 类似资料:
  • 更新:我试过那些设置,但它们也不起作用。

  • 问题内容: 我正在将一些数据发布到正在回答302移动临时的服务器上。 我希望HttpClient遵循重定向并自动获取新位置,因为我相信这是HttpClient的默认行为。但是,我得到一个例外,而不是按照重定向:( 这是相关的代码,任何想法都将不胜感激: 问题答案: HttpClient的默认行为符合HTTP规范(RFC 2616)的要求 您可以通过子类化DefaultRedirectStrateg

  • 11.7. 处理重定向 你可以使用两种不同的自定义 URL 头信息来处理永久重定向和临时重定向。 首先, 让我们来看看重定向处理的必要性。 例 11.10. 没有重定向处理的情况下,访问 web 服务 >>> import urllib2, httplib >>> httplib.HTTPConnection.debuglevel = 1 >>> request = url

  • 主要内容:Maven依赖关系,重定向处理示例HttpClient自动处理所有类型的重定向,除了HTTP规范明确禁止的那些重定向需要用户干预。 请参阅其他(状态码)在POST上重定向,并且按照HTTP规范的要求将PUT请求转换为GET请求。 可以使用自定义重定向策略来放宽由HTTP规范施加的对POST方法的自动重定向的限制。 在下面的教程中,我们将使用来处理http重定向。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apac

  • 对于许多开发人员来说,使用.htaccess总是有点困惑。 目前我也遇到了一个问题 我们希望3到4件东西可以同时与htaccess一起工作 1) 将非www重定向到www 2)删除. php扩展 3)对于具有尾随参数的页面abc.php?pageid=28和abc.php?pageid=95 所有这些都必须共同努力。

  • 问题内容: 我正在使用AngularJS构建SPA,并与服务(JAVA)通信。 当用户发送其用户名/密码时,服务会同时发送回:Acces令牌和Refresh令牌。我正在尝试处理:如果收到状态为401的响应,请发送回刷新令牌,然后再次发送您的上一个请求。我试图通过包含$ http来做到这一点,但是angular不允许我在此拦截器中包含它。有什么方法可以使用我正在接收的响应参数来重新创建原始请求吗?