Jsoup парсинг

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Jsoup парсинг

Сообщение beks000 » 15 июн 2014, 21:08

подскажите пожайлуста как мне спарсить ссылку href внутри тэга h2 ???

[syntax=html4strict]<h2>

<a href="http://html.html" title="Html">HTML</a>

</h2>[/syntax]

просто парсить a[href] не получается, и другие с такими тэгами есть
мне нужен a[href] внутри h2

подскажете? или варианты?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Jsoup парсинг

Сообщение altwin » 16 июн 2014, 11:31

[syntax=java5]
Elements resultLinks = doc.select("h2.r > a[href]");[/syntax]

P.S. http://jsoup.org/cookbook/extracting-da ... tor-syntax
Изображение

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Jsoup парсинг

Сообщение beks000 » 16 июн 2014, 20:37

altwin писал(а):[syntax=java5]Elements resultLinks = doc.select("h2.r > a[href]");[/syntax]
----h2.r - не работает, h2 > a[href] сделал так, а он игнорирует href и выводит просто a

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Jsoup парсинг

Сообщение altwin » 17 июн 2014, 10:43

Если а он видит, что мешает к resultLinks повторно вызвать select?

Хотя вообще странно у меня даже это работает:
[syntax=java5]
String s = document.select("h2 a[href]");
[/syntax]

К томуже вы всегда можете использовать вложенные циклы, т.е. getElementsByTag('h2') (получить все h2 в документе), далее getElementsByTag('a') (получить все а) и потом уже у а вызвать attr("href")
Изображение

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Jsoup парсинг

Сообщение beks000 » 17 июн 2014, 20:19

[syntax=java]Element link = doc.select("h2").first();
Elements links = link.getElementsByTag("a");
String linkHref = links.attr("href");
text.setText(linkHref);[/syntax]

вот так да? но извините это у меня ничего не выводит

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Jsoup парсинг

Сообщение beks000 » 17 июн 2014, 20:29

ойй эээ :o
у меня даже обыкновенный
[syntax=java]String title = doc.title();
text.setText(title);[/syntax]
не выводит

что то тут не так
вроде коды верные
может это из-за сети или аппарата?
нет возможности тестить на эмуляторе, но надо бы

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Jsoup парсинг

Сообщение altwin » 18 июн 2014, 09:46

beks000 писал(а):ойй эээ :o
у меня даже обыкновенный
[syntax=java]String title = doc.title();
text.setText(title);[/syntax]
не выводит

что то тут не так
вроде коды верные
может это из-за сети или аппарата?
нет возможности тестить на эмуляторе, но надо бы
Я не на столько глубоко знаком с супом, но у вас явно что -то не так. Где вы берет саму библиотеку? Может версия какая -то старая? Попроуйте создать чистый проект подключить суп и разобрать какой -нить документ. Большинство этого кода достаточно базовые вещи и описнная по сути в примерах документации, я сильно сомневаюсь, что примеры из документации могут не работать.
Изображение

kakawka
Сообщения: 1
Зарегистрирован: 11 июл 2014, 18:12

Re: Jsoup парсинг

Сообщение kakawka » 11 июл 2014, 18:17

Ребят, мне тоже нужна помощь по jsoup
https://gist.github.com/kakawka/067595c290a72ad782ca
Пробовал много сайтов, все нормально парсятся и выводится title, а тот, который сейчас в коде никак не хочет работать. В чем может быть причина?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Jsoup парсинг

Сообщение altwin » 11 июл 2014, 21:41

kakawka писал(а):Ребят, мне тоже нужна помощь по jsoup
https://gist.github.com/kakawka/067595c290a72ad782ca
Пробовал много сайтов, все нормально парсятся и выводится title, а тот, который сейчас в коде никак не хочет работать. В чем может быть причина?
вот, что выдает curl -i, т.е. source code страницы, которую вы пытаетесь получить :
[syntax=html5]HTTP/1.1 200 OK
Server: nginx
Date: Fri, 11 Jul 2014 18:39:42 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=120
Expires: Mon, 26 Jul 1980 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, no-store, must-revalidate

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; " />
<script>
document.cookie='_ddn_intercept_2_=22142ef6146ee4f3aa06c933f2aae4a9; max-age=604800; path=/';
var nc = function() {return document.cookie.indexOf('_ddn_intercept_2_=22142ef6146ee4f3aa06c933f2aae4a9')==-1;};
var w = function() {document.body.innerHTML = document.getElementsByTagName('noscript')[0].textContent;};
if (!window.opera) {
if (!nc()) {window.location.reload(true);}
var r = function() {if (nc()) w();};
} else {
var r = function () {
if (!nc()) {window.location.reload(true);}
else {w();}
}
}
</script>
</head>
<body onload="r()">
<noscript>You have to turn on javascript and cookies support in browser to visit this site.<br/>
Для посещения этого сайта необходима поддержка javacript и cookies Вашим браузером<br/>
<a href="http://ddos-guard.net">ddos-guard.net</a>
</noscript>
</body>
</html>%[/syntax]
т.е. динамический сайт и для генерации контента необходимо выполнить js. Так просто это не получиться, ищите в google как парсить динамические сайты.
Изображение

Ответить