Как конвертировать сайт в файл .txt, чтобы найти в этом файле какое-нибудь слово? - PullRequest
2 голосов
/ 19 июня 2020

Как преобразовать веб-сайт в файл .txt, чтобы найти в этом файле какое-нибудь слово (например, «Абрамов Николай Викторович»)? Мой код только для чтения html. Другими словами, я хочу проверять сайт каждую секунду. Если появляется мое слово (автор сайта), то мой код печатает «Да».

А как сделать компьютерное приложение для проверки любого другого слова?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class web {
    public static void main(String[] args) {
        for (;;) {
            try {
                // Create a URL for the desired page
                URL url = new URL("http://abit.itmo.ru/page/195");
                // Read all the text returned by the server
                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                String str = null;
                while (in.readLine() != null) {
                    str = in.readLine().toString();
                    System.out.println(str);
                    // str is one line of text; readLine() strips the newline character(s)
                }
                in.close();
                Pattern p = Pattern.compile("Абрамов Николай Викторович");
                Matcher m = p.matcher(str);
                if (m.find()) {
                    System.out.println("Yes");
                    System.exit(0);
                }
            } catch (IOException ignored) {
            }
        }
    }
}

1 Ответ

1 голос
/ 19 июня 2020

Вам не нужно конвертировать его в TXT. Если вы хотите просто найти слово, вы можете проверить его напрямую. Но будьте осторожны, это может выглядеть как DDOS-атака, если период слишком короткий, и вы можете быть заблокированы

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Main {

   public  static  String wordToFind = "30 Day";
    public  static  String siteURL = "https://stackoverflow.com/";

    public static  void  checkSite()
    {
        try {
            URL google = new URL(siteURL);
            BufferedReader in = new BufferedReader(new InputStreamReader(google.openStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) { // Process each line.                
                if (inputLine.contains( wordToFind)) // System.out.println(inputLine);
                {
                    System.out.println( "Yes" );
                    return;
                }
            }
            in.close();
        } catch (MalformedURLException me) {
            System.out.println(me);
        } catch (IOException ioe) {
            System.out.println(ioe);
        }

    }


    public static void main(String[] args) {

        Integer initalDelay = 0;
        Integer period = 10; //number of seconds to repeat

        ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
        exec.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {

                checkSite();
                // do stuff
            }
        }, initalDelay, period, TimeUnit.SECONDS);

}


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