получить ссылки на веб-сайте - PullRequest
3 голосов
/ 06 октября 2010

как я могу получить ссылки на веб-странице, не загружая ее? (в основном я хочу вот что. Пользователь вводит URL, и я хочу загрузить все доступные ссылки внутри этого URL.) Подскажите, пожалуйста, как этого добиться

Ответы [ 5 ]

2 голосов
/ 06 октября 2010

Вот пример кода Java , в частности:

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;

import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;

public class Main {
  public static void main(String args[]) throws Exception {
    URL url = new URL(args[0]);
    Reader reader = new InputStreamReader((InputStream) url.getContent());
    System.out.println("<HTML><HEAD><TITLE>Links for " + args[0] + "</TITLE>");
    System.out.println("<BASE HREF=\"" + args[0] + "\"></HEAD>");
    System.out.println("<BODY>");
    new ParserDelegator().parse(reader, new LinkPage(), false);
    System.out.println("</BODY></HTML>");
  }
}

class LinkPage extends HTMLEditorKit.ParserCallback {

  public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
    if (t == HTML.Tag.A) {
      System.out.println("<A HREF=\"" + a.getAttribute(HTML.Attribute.HREF) + "\">"
          + a.getAttribute(HTML.Attribute.HREF) + "</A><BR>");
    }
  }

}
0 голосов
/ 14 июля 2014
public void extract_link(String site)
{
    try {
        List<String> links = extractLinks(site);
        for (String link : links) {
            System.out.println(link);
        }

    } catch (Exception e) {
        System.out.println(e);
    }
}

Это простая функция для просмотра всех ссылок на странице. Если вы хотите просмотреть ссылку во внутренних ссылках, просто вызовите ее рекурсивно (но не забудьте указать лимит в соответствии с вашими потребностями).

0 голосов
/ 06 октября 2010

Если вы хотите, чтобы содержимое страницы вам нужно было загрузить.Но вы можете загрузить его в память и проанализировать, чтобы получить все теги <a> и их содержимое.

Вы сможете анализировать этот XML с помощью таких инструментов, как JDom или Sax , если вы работаете с Java (как говорит ваш тег) или с простыми инструментами DOM с JavaScript.


Ресурсы:

По той же теме:

0 голосов
/ 06 октября 2010

Просто откройте URLConnection, получите страницу и проанализируйте ее.

0 голосов
/ 06 октября 2010

Вам нужно будет загрузить страницу на свой сервер и затем найти ссылки, предпочтительно путем загрузки документа в анализатор HTML / XML и обхода этого DOM. Затем сервер может отправить ссылки обратно клиенту.

Вы не можете сделать это на клиенте, потому что браузер не позволит вашему коду Javascript просматривать содержимое страницы из другого домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...