23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
1

Как в jsoup получить абсолютный URL?

23.06.2016, 14:51. Показов 3600. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую всех!

прошу помощи в получении ссылки,

на некоторой странице с адресом напр.: "http://almazy.com/catalog/almazy/almazy-granenye/1/" есть такой код:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="catalog">
                   <div itemscope itemtype="http://schema.org/Product" class="product-cont">
                <a href="/catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html"><p itemprop="name" class="product-name">Almaz granenyi 100karat</p></a>
                <div class="left">
                    <a href="/catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html"><img itemprop="image" src="/files/contents/188/icon_180x99.jpg" width="180" height="99" alt="Almaz granenyi 100karat" /></a>
                  <span class="price">100000000 руб</span>
                </div>
                <div class="right">
                  <noindex><p class="product-desc" itemprop="description">самые крутые в мире алмазы по бросовым ценам, нажми чтобы узнать подробнее...</p></noindex>
                    <a href="/catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html" class="read-more cat-more">Подробнее</a>
                    <span data-id="188" class="buy to-basket"><i class="fa fa-cart-arrow-down" aria-hidden="true"></i> В корзину</a>
                </div>
            </div>
и проблема заключается в том что не могу получить в String вот это - /catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html

т.е. не понимаю как задать фильтр :
Java
1
2
3
4
Document doc;
Elements link;
doc = Jsoup.connect("http://almazy.com/catalog/almazy/almazy-granenye/1/").get();
link = doc.select("НЕ ЗНАЮ [как.фильтрануть] нужный тег.со ссылкой");
Помогите кто делал, пожалуйста?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2016, 14:51
Ответы с готовыми решениями:

Как создать абсолютный url
Доброго времени суток. Пытаюсь создать абсолютный url, чтобы ссылка на восстановления...

Возможно ли в методе server.transfer использовать абсолютный адрес URL и как?
возможно ли в методе server.transfer использовать абсолютный адрес URL и как?

Как с jsoup по домену без протокола перейти на конечный url
Здравствуйте, есть список доменов без протоколов http/https подскажите как с помощью jsoup...

Как получить абсолютный путь?
Есть запускающий jar-файл в директории dir/a/a1/main.jar, который получает файл из директории...

9
100 / 79 / 9
Регистрация: 03.08.2014
Сообщений: 447
23.06.2016, 15:36 2
Копайте в сторону недопустимых символов xml
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
23.06.2016, 20:05  [ТС] 3
Alexvp,
в сторону недопустимых символов xml
можно чуть подробнее, не хватает образования понять...

нашел пример на java, но что-то он не работает(не разобрался)

JsoupExtractLinks.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.journaldev.jsoup;
 
import java.io.IOException;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
public class JsoupExtractLinks {
 
    public static void main(String[] args) throws IOException {
 
        Document doc = Jsoup.connect(&amp;quot;[url]http://www.journaldev.com&amp;quot;).get();[/url]
        Element content = doc.getElementById(&amp;quot;content&amp;quot;);
        Elements links = content.getElementsByTag(&amp;quot;a&amp;quot;);
        for (Element link : links) {
          String linkHref = link.attr(&amp;quot;href&amp;quot;);
          String linkText = link.text();
          System.out.println(&amp;quot;Text::&amp;quot;+linkText+&amp;quot;, URL::&amp;quot;+linkHref);
        }
    }
 
}


логика немного понятна, может у кого-то что-то похожее под андроид есть?
0
100 / 79 / 9
Регистрация: 03.08.2014
Сообщений: 447
23.06.2016, 22:26 4
К сожалению, нет времени искать, но скорее всего проблема в двойных кавычках. Не помню на какой символ надо менять их для xml. Попробуйте поиском найти "недопустимые символы xml" Там должна быть таблица замены этих символов.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
24.06.2016, 11:37  [ТС] 5
Alexvp, нашёл

Пробел =>
" => &quot;
© => &copy;
® => &reg;
™ => &trade;
? => &euro;
Ј => &pound;
„ => &bdquo;
“ => &ldquo;
« => &laquo;
» => &raquo;
> => &gt;
< => &lt;
≥ => &ge;
≤ => &le;
≈ => &asymp;
≠ => &ne;
≡ => &equiv;
§ => &sect;
& => &amp;
∞ => &infin;
, но где использовать эти символы, что они мне дают?
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
24.06.2016, 14:07 6
Цитата Сообщение от disx Посмотреть сообщение
т.е. не понимаю как задать фильтр
Если вы точно знаете что URL находиться первым в документе, то можно так:
Java
1
String firstURL=doc.select("a").first().attr("href");

Если же надо получить все линки на странице:
Java
1
2
3
4
Elements elements = document.select("a");
for(Element element:elements){
                arrayList.add(element.attr("href"));
            }
а потом уже естествено примянять свою логику для нахождения нужного URL.
1
9 / 9 / 5
Регистрация: 22.08.2015
Сообщений: 108
24.06.2016, 15:08 7
doc.select("a").first().attr("abs:href")
Видимо так. abs - добавит адрес самого сайта.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
11.01.2017, 22:28  [ТС] 8
amasaemi, так выдает только адрес сайта (типа http://almaz.ru/)

fraley,
Java
1
String firstURL=doc.select("a").first().attr("href");
так только один символ всплывает - '/', а надо из <a href забрать это -
HTML5
1
String firstURL=doc.select("a").first().attr("href");
Добавлено через 1 час 22 минуты
fraley, т.е. это
HTML5
1
/catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
12.01.2017, 00:44 9
disx, из примера ТС именно это и получается.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
12.01.2017, 14:34  [ТС] 10
fraley, получилось как-то так:

Java
1
2
3
4
 review = doc.select(".product-desc");
                review = doc.select("[class=right]");
                review = doc.getElementsByClass("right");
                getReview = review.select("a");
, в цикле получаю урл каждой позиции так:

JSON
1
String opis = getReview.get(i).attr("abs:href");
0
12.01.2017, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2017, 14:34
Помогаю со студенческими работами здесь

Как из asp получить полный URL и часть URL от вопросительного знака?
Господа подскажите как из asp получить полный URL и часть URL от вопросительного знака. На...

Как получить часть url return url
как получить часть url return url Привет всем! Вопрос от человека далекого от javaScript. у меня...

JSoup проблема ( Must supply a valid URL ) хотя ссылка верная
Здравствуйте помогите пожалуйста, прилагаю проектик IDEA.... Смысл такой: ...

Org.jsoup.HttpStatusException: HTTP error fetching URL. Status=405
Привет всем! Народ, такая проблема, при попытке парсером попасть на сайт, выдает ошибку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru