1

これは、URL からページ タイトルを取得するために Groovy で記述したコードです。ただし、301 リダイレクトが原因であると思われる「完全に移動」した Web サイトもあります。これを回避し、HttpUrlConnection が正しい URL をたどり、正しいページ タイトルを取得できるようにするにはどうすればよいですか

たとえば、このウェブサイトでは、正しいページ タイトルではなく「Moved Permanently」を取得しました http://www.nytimes.com/2011/08/14/arts/music/jay-z-and-kanye-wests-watch-the-玉座.html


        def con = (HttpURLConnection) new URL(url).openConnection()
        con.connect()

        def inputStream = con.inputStream

        HtmlCleaner cleaner = new HtmlCleaner()
        CleanerProperties props = cleaner.getProperties()

        TagNode node = cleaner.clean(inputStream)
        TagNode titleNode = node.findElementByName("title", true);

        def title = titleNode.getText().toString()
        title = StringEscapeUtils.unescapeHtml(title).trim()
        title = title.replace("\n", "");
        return title

4

2 に答える 2

0

HttpUrlConnection で setInstanceFollowRedirects(true) を呼び出す必要があります。つまり、最初の行の後に、con.setInstanceFollowRedirects(true) を挿入します。

于 2011-08-14T09:25:59.427 に答える