Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 400
23.06.2016, 14:51     Как в jsoup получить абсолютный URL? #1
Приветствую всех!

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

на некоторой странице с адресом напр.: "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("НЕ ЗНАЮ [как.фильтрануть] нужный тег.со ссылкой");
Помогите кто делал, пожалуйста?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
23.06.2016, 15:36     Как в jsoup получить абсолютный URL? #2
Копайте в сторону недопустимых символов xml
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 400
23.06.2016, 20:05  [ТС]     Как в jsoup получить абсолютный URL? #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);
        }
    }
 
}


логика немного понятна, может у кого-то что-то похожее под андроид есть?
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
23.06.2016, 22:26     Как в jsoup получить абсолютный URL? #4
К сожалению, нет времени искать, но скорее всего проблема в двойных кавычках. Не помню на какой символ надо менять их для xml. Попробуйте поиском найти "недопустимые символы xml" Там должна быть таблица замены этих символов.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 400
24.06.2016, 11:37  [ТС]     Как в jsoup получить абсолютный URL? #5
Alexvp, нашёл

Пробел =>
" => &quot;
© => &copy;
® => &reg;
™ => &trade;
? => &euro;
Ј => &pound;
„ => &bdquo;
“ => &ldquo;
« => &laquo;
» => &raquo;
> => &gt;
< => &lt;
≥ => &ge;
≤ => &le;
≈ => &asymp;
≠ => &ne;
≡ => &equiv;
§ => &sect;
& => &amp;
∞ => &infin;
, но где использовать эти символы, что они мне дают?
fraley
90 / 90 / 31
Регистрация: 24.05.2015
Сообщений: 245
24.06.2016, 14:07     Как в jsoup получить абсолютный URL? #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.
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
24.06.2016, 15:08     Как в jsoup получить абсолютный URL? #7
doc.select("a").first().attr("abs:href")
Видимо так. abs - добавит адрес самого сайта.
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 400
11.01.2017, 22:28  [ТС]     Как в jsoup получить абсолютный URL? #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
fraley
90 / 90 / 31
Регистрация: 24.05.2015
Сообщений: 245
12.01.2017, 00:44     Как в jsoup получить абсолютный URL? #9
disx, из примера ТС именно это и получается.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2017, 14:34     Как в jsoup получить абсолютный URL?
Еще ссылки по теме:

Парсинг на jsoup Android
Получить абсолютный путь к Assets файлам Android
Android Узнать абсолютный путь к файлу
Как заполнить в ListView второй element из Jsoup? Android
Android Jsoup

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

Или воспользуйтесь поиском по форуму:
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 400
12.01.2017, 14:34  [ТС]     Как в jsoup получить абсолютный URL? #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");
Yandex
Объявления
12.01.2017, 14:34     Как в jsoup получить абсолютный URL?
Ответ Создать тему
Опции темы

Текущее время: 14:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru