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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
#1

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

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

Приветствую всех!

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

на некоторой странице с адресом напр.: "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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 14:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как в jsoup получить абсолютный URL? (Программирование Android):

Получить абсолютный путь к Assets файлам - Программирование Android
Здравствуйте. Проект под MonoAndroid, но в данном случае это не важно. Использую iTextSharp для создания .pdf файла. И чтобы кирилица...

Jsoup получить элемент - Программирование Android
Подскажите как найти элемент в экземпляре Document, если цифры в id неизвестны(только буквы)? Document doc =...

Получить содержимое класса с помощью JSOUP - Программирование Android
&lt;div class=&quot;main-wrapper&quot;&gt; &lt;div class=&quot;content-wrapper&quot;&gt; &lt;div class=&quot;content&quot;&gt; &lt;script...

Как получить url ссылку на страницу пользователя одноклаассников? - Программирование Android
как получить url ссылку на страницу пользователя одноклаассников?? мне нужно отправлять на страницу пользователя одноклаасников картинки...

Как заполнить в ListView второй element из Jsoup? - Программирование Android
protected String doInBackground(String... arg) { Document doc; try { doc =...

Jsoup, как вытащить картинку из rss ленты в теге <description> - Программирование Android
пишу клиент для сайта использую xml sax parser вопрос как вытащить картинки и сделать что бы они коректно отображались rss лента имеет...

9
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
23.06.2016, 15:36 #2
Копайте в сторону недопустимых символов xml
0
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
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
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
23.06.2016, 22:26 #4
К сожалению, нет времени искать, но скорее всего проблема в двойных кавычках. Не помню на какой символ надо менять их для xml. Попробуйте поиском найти "недопустимые символы xml" Там должна быть таблица замены этих символов.
1
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
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
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
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
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
24.06.2016, 15:08 #7
doc.select("a").first().attr("abs:href")
Видимо так. abs - добавит адрес самого сайта.
0
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
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
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
12.01.2017, 00:44 #9
disx, из примера ТС именно это и получается.
0
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2017, 14:34
Привет! Вот еще темы с ответами:

Узнать абсолютный путь к файлу - Программирование Android
как можно узнать абсолютный путь к файлу? В классе наследуемом от Фрагмент использовал getActivity,а как еще можно, если класс наследуеться...

jsoup - Программирование Android
Здрасьте. Вопрос по поводу этой замечательной библиотеке:) Есть html следующего содержания: &lt;span class=&quot;aaa&quot;&gt;Всем привет!&lt;br /&gt; ...

Jsoup - Программирование Android
Помогите пожалуйста. При нажатии на строку с заголовком приложение вылетает. Подскажите в чем дело и как потом это исправить. public...

Jsoup и https - Программирование Android
Здравствуйте есть вопрос. Есть сайт на https на котором нужно залогиниться чтобы получить инфу. вопрос в том как с этим работать с...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
12.01.2017, 14:34
Ответ Создать тему
Опции темы

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