Реализую телеграм бота для парсинга. Прокси работает, бот отвечает на слова, а вот парсинг работает не как ожидается и не выводит на экран почему?
class Main
import org.telegram.telegrambots.ApiContextInitializer;
import org.telegram.telegrambots.bots.DefaultBotOptions;
import org.telegram.telegrambots.meta.ApiContext;
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
public class Main {
// private static String PROXY_HOST = "87.214.0.47" /* proxy host */;
// private static Integer PROXY_PORT = 3128 /* proxy port */;
public static void main(String[] args) {
try {
ApiContextInitializer.init();
TelegramBotsApi telegramm = new TelegramBotsApi();
DefaultBotOptions options = ApiContext
.getInstance(DefaultBotOptions.class);
options.setProxyHost("166.62.83.129");
options.setProxyPort(20333);
//Select proxy type: [HTTP|SOCKS4|SOCKS5] (default: NO_PROXY)
options.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
telegramm.registerBot(new Bot(options));
} catch (TelegramApiRequestException e) {
e.printStackTrace();
}
}
}
class Bot
import org.telegram.telegrambots.bots.DefaultBotOptions;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
public class Bot extends TelegramLongPollingBot {
KapperBook kapperBook = new KapperBook();
private long chat_id;
public Bot(DefaultBotOptions options) {
super(options);
}
public void onUpdateReceived(Update update) {
update.getUpdateId();
SendMessage sendMessage = new SendMessage().setChatId(update.getMessage().getChatId());
chat_id = update.getMessage().getChatId();
sendMessage.setText(input(update.getMessage().getText()));
try {
execute(sendMessage);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
public String getBotUsername() {
return "@KupperMSCBot";
}
public String getBotToken() {
return "787571455:AAFl9vffyhKqLq6ADadWJg2ByzQFMBifcno";
}
public String getInfoKapperBook() {
String info = kapperBook.getTitle()
+ "\nЛига " + kapperBook.getGeners()
+ "\n\nОписание " + kapperBook.getDescription()
+ "\n\nКоличестов лайков\n" + kapperBook.getOrating_res();
return info;
}
String input(String msg) {
if (msg.contains("Ставка")) {
return getInfoKapperBook();
}
return msg;
}
}
class KapperBook
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
public class KapperBook {
private Document document;
public KapperBook() {
connect();
}
private void connect() {
try {
document = Jsoup.connect("https://vprognoze.ru/forecast/pro/").get();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getTitle() {
return document.title();
}
public String getOrating_res() {
// Element element = document.getElementById("orating_res"); // лайки
Elements elements = document.getElementsByClass("orating_res");
return elements.text();
}
public String getDescription() {
Elements elements = document.getElementsByClass("news_box");
//Element element = document.getElementById("news_box"); // описание
return elements.text();
}
public String getGeners() {
Elements elements = document.getElementsByClass("championship"); //лига
return elements.text();
}
}
При попытке подключится через Jsoup
из коробки по указанному вами адресу, вылетает исключение:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=307, URL=https://vprognoze.ru/forecast/pro/
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:435)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
at ua.spoon.Application.main(Application.java:27)
На en SO есть вопрос на эту тему
HTTP status code 307 is not an error, it's an information saying that the server is making a temporary redirect to another page.
Вольный перевод:
HTTP status code 307 это не код ошибки, а информация о том, что сервер сервер делает временное перенаправление на другую страницу.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Сделал два эксперимента с использованием javaFx и Swing где оба этих проекта заворачиваю в банку (Eclipse)первым экспортировал Swing проект по двойному...
У меня есть формы и все они работают через onsubmit с одним и тем же скриптом На одну из форм мне нужно было сделать так, что бы при нажатии на кнопку,...
Есть 2 иконки play/pause, при нажатии на play должна появляться pause, но в момент когда появляется pause иконка play не исчезает и получается наложение...