Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Парсинг ответов с сайта

#java #парсер


Есть сайт, который по коду выдает данные (ответы). Т.е., в форму поиска вписывается
код, нажимается Enter или кнопка поиска, и сайт выдает текст в табличке.

До этого никогда парсингом с сайтов не занимался, только писал на java.

Как реализовать такую программу?
    


Ответы

Ответ 1



Вы можете использовать библиотеку Jsoup, которая позволяет загружать нужную web-страницу/файл и искать/извлекать данные с использованием css селекторов, либо стандартным обходом DOM. Для заполнения формы и получения результатов запроса необходимо получить адрес запроса и его параметры, затем просто эмулировать запрос с нужными параметрами. Например: Document doc = Jsoup.connect(url) .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") .data("action", "login") .data("user", "user") .data("password", "123456") .post();

Ответ 2



Получаешь html текст сайта в String (например, post или get запросом) Используешь str.substring str.indexOf для получение нужного текста из html В общем, если ответ не json или не xml, то просто работай со строками. Если ответ в json, то найди какую-нибудь библиотеку для парсинга json

Ответ 3



Попробуйте что-то подобное: HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("url"); List parameters = new ArrayList<>(); parameters.add(new BasicNameValuePair("code", "1111")); httpPost.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8")); HttpResponse httpResponse = httpClient.execute(httpPost);

Ответ 4



Как я понял тебе нежно знать как забрать от них данные. По сути тебе придётся профайлером посмотреть какой запрос возвращает ответ на страницу сайта и симулировать его. В большинство поисков если они открыты для гугла то после нажатия на Интер происходит редирект на другую страницу с параметрами запроса. Вот тебе придётся и генерировать этот урл и забирать по нему данные.

Комментариев нет:

Отправить комментарий