извлекать комментарии из блога с помощью jsoup

помогите с извлечением комментариев из блога, например блоггером, используя jsoup

я могу получить название, но как извлечь все комментарии, опубликованные людьми по определенной теме обсуждения

package com.hascode.samples.jsoup;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class WebScraper {
 public static void main(final String[] args) throws IOException {
 Document doc = Jsoup.connect("http://www.hascode.com/")
 .userAgent("Mozilla").timeout(6000).get();
 String title = doc.title();//parsing the page's title
 System.out.println("The title of www.hascode.com is: " + title);
 Elements heading = doc.select("h2 > a");//parsing the latest article's
//heading
 System.out.println("The latest article is: " + heading.text());
 System.out.println("The article's URL is: " + heading.attr("href"));
 Elements editorial = doc.select("div.BlockContent-body small");
 System.out.println("The was created: " + editorial.text());
 }
}

Я пытаюсь извлечь комментарии с помощью Jframe, но выхода нет. Вот мой код:

public class SimpleWebCrawler extends JFrame {

    JTextField yourInputField = new JTextField(20);
    static JTextArea _resultArea = new JTextArea(100, 100);
    JScrollPane scrollingArea = new JScrollPane(_resultArea);
    private final static String newline = "\n";

    public SimpleWebCrawler() throws MalformedURLException {

        _resultArea.setEditable(false);
        System.out.println("Please enter the website  :");
        Scanner scan2 = new Scanner(System.in);
        String word2 = scan2.nextLine();

        try {
            URL my_url = new URL("http://" + word2 + "/");
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    my_url.openStream()));
            String strTemp = "";
            while (null != (strTemp = br.readLine())) {
                _resultArea.append(strTemp + newline);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        _resultArea.append("\n");
        _resultArea.append("\n");
        _resultArea.append("\n");


        String url = "http://" + word2 + "/";
        print("Fetching %s...", url);

        try{
        Document articlePage = Jsoup.connect(url).get();
        Elements comments = articlePage.select(".comments .comment-body");


        System.out.println("\n");

        BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\user\\fypworkspace\\FYP\\Link\\abc.txt"));
        _resultArea.append("\n");
        for (Element comment : comments) {
            print("  %s  ",  comment.text());

            bw.write(comment.text());
            bw.write(System.getProperty("line.separator"));
        }
        bw.flush();
        bw.close();
        } catch (IOException e1) {

        }
        JPanel content = new JPanel();
        content.setLayout(new BorderLayout());
        content.add(scrollingArea, BorderLayout.CENTER);

        this.setContentPane(content);
        this.setTitle("Crawled Links");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.pack();


        }

        private static void print(String msg, Object... args) {

            _resultArea.append(String.format(msg, args) +newline);
        }

        private static String trim(String s, int width) {
            if (s.length() > width)
                return s.substring(0, width - 1) + ".";
            else
                return s;
        }

        //.. Get the content pane, set layout, add to center


    public static void main(String[] args) throws IOException {

        JFrame win = new SimpleWebCrawler();
        win.setVisible(true);

    }
}
1

1 ответы

Just open the article page and scrape comments from there. Each comment is one

  • element in
      with class commentsList, so you can get them all like this:

      Document articlePage = Jsoup.connect(heading.attr("href")).get();
      Elements comments = articlePage.select(".commentsList li");
      for (Element comment : comments) {
          System.out.println("Comment: " + comment.text());
      }
      
  • 3
    добавлено
    @baksteen Не забудьте добавить полезные ответы и принять полезный ответ (если любой), поэтому будущие посетители знают, что помогло!
    добавлено автор Dave Newton, источник
    Элементы комментариев = articlePage.select (". комментарии .comment-body") должны работать здесь. В общем, вам нужно найти селектор, который будет выбирать только правильные элементы из дерева DOM.
    добавлено автор socha23, источник
    ОК, я попробовал, но вот мой пример блога я хочу извлечь комментарии из ...... добавлено автор baksteen, источник
    спасибо, что он работал так хорошо сейчас
    добавлено автор baksteen, источник
    pro.jvm
    pro.jvm
    3 503 участник(ов)

    Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

    Java & Co
    Java & Co
    2 370 участник(ов)

    Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

    learn.java
    learn.java
    1 888 участник(ов)

    Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

    Java Underground
    Java Underground
    169 участник(ов)

    https://vk.com/javatutorial

    Javanese Questions
    Javanese Questions
    109 участник(ов)

    Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async