2014-02-05 3 views
0

Я пытаюсь получить данные из этого URL:Получить данные из URL с помощью Jsoup: Нет данных извлекаться

http://fr.news.yahoo.com/jo-sotchi-manifestations-monde-entier-contre-loi-russe-125051858.html

Я использую JSoup библиотеку, чтобы получить значение элемента DOM.

Но я не получаю ответа. Вот мой код:

protected String doInBackground(String... params) { 
    String urldisplay = params[0]; 
    Log.d("INFO", "URL : "+urldisplay); 
    String source = params[1]; 
    String toSet = null; 
    String articleToDisplay = null ; 
    try { 
     doc = Jsoup.connect(urldisplay) 
      .userAgent("Mozilla/5.0 Gecko/20100101 Firefox/21.0") 
       .timeout(0) 
        .get(); 
     toSet = doc.select("div.mediaarticlebody").text() ; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    }  
     return toSet;    
} 
+0

Я просто надеюсь, что есть на самом деле что-то другое, чем 'Струнный ... params' в коде :) – Dropout

+0

сообщение точное исключение и stacktrace – BackSlash

+0

Не исключение, результат в переменной toSet пуст. – wawanopoulos

ответ

1

Возможно, сайт не распознает агента пользователя. Это работает для меня, если я изменить UserAgent следующим образом:

Document doc = Jsoup.connect("http://fr.news.yahoo.com/jo-sotchi-manifestations-monde-entier-contre-loi-russe-125051858.html") 
       .userAgent("Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36") 
       .timeout(0).get(); 

Element el = doc.select("div#mediaarticlebody").first(); 
System.out.println(el); 

Выходы:

<div class="yom-mod yom-art-content " id="mediaarticlebody" itemprop="articleBody"> 
<div class="bd"> 
    <!-- google_ad_section_start --> 
    <p class="first"><strong>MONDE - A deux jours de la c&eacute;r&eacute;monie d'ouverture, des rassemblements sont pr&eacute;vus dans le monde entier contre cette loi pass&eacute;e 2012...</strong></p> 
    <p>Les Jeux olympiques de Sotchi ouvrent une fen&ecirc;tre de tir sans pr&eacute;c&eacute;dent pour d&eacute;noncer de nouveau la loi &laquo;anti-gay&raquo; adopt&eacute;e en juin 2012 en Russie, selon les d&eacute;fenseurs des droits de l'Homme et les organisations LGBT (lesbiennes, gays, bisexuels, transsexuels). A deux jours de la c&eacute;r&eacute;monie d'ouverture, des rassemblements sont pr&eacute;vus dans le monde entier contre cette loi, qui punit d'une amende pouvant atteindre 500.000 roubles (10.600 euros environ) &nbsp;et de prison la &laquo;propagande&raquo; homosexuelle devant mineurs.</p> 
    <p>&laquo;C'est le moment de pousser les sponsors [des JO] &agrave; utiliser leur pouvoir &eacute;conomique, afin d'appeler &agrave; l'abrogation de ces lois discriminatoires&raquo;, &eacute;crit l'ONG de d&eacute;fense LGBT All Out sur son site, les appelant &agrave; &laquo;sortir de leur silence sur les lois anti-gay russes&raquo;. Elle organise des manifestations dans 19 villes du monde, de New York &agrave; Melbourne en passant par Paris et Saint-P&eacute;tersbourg pour la Russie - mais pas Sotchi.</p> 
    <p><b>Agressions homophobes</b></p> 
    <p>Vladimir Poutine avait promulgu&eacute; cette loi controvers&eacute;e en juin 2012, ouvrant la voie &agrave; une vague d'agressions homophobes en Russie. Le texte avait suscit&eacute; des appels au boycott des jeux Olympiques de Sotchi. En janvier 2013, Amnesty International avait d&eacute;nonc&eacute; une loi &laquo;&eacute;tabli[ssant] une discrimination &agrave; l'&eacute;gard des personnes LGBT&raquo;, &laquo;aliment[ant] les discours homophobes&raquo; et &laquo;encourag[eant] la stigmatisation en entretenant l'id&eacute;e que les enfants doivent &ecirc;tre prot&eacute;g&eacute;s contre l'homosexualit&eacute;&raquo;. L'ONG rappelait aussi que &laquo;certains d&eacute;fenseurs des droits des personnes LGBT [avaient] d&eacute;j&agrave; &eacute;t&eacute; harcel&eacute;s et agress&eacute;s&raquo;.</p> 
    <p>De son c&ocirc;t&eacute;, le pr&eacute;sident am&eacute;ricain Barack Obama a indiqu&eacute; en septembre dernier qu'il n'avait &laquo;aucune patience pour les pays qui cherchaient &agrave; intimider ou nuire aux gays, lesbiennes ou les transsexuels&raquo;. La d&eacute;l&eacute;gation (...) <a rel="nofollow" href="http://www.20minutes.fr/article/1290686/ynews1290686?xtor=RSS-176"><strong>Lire la suite sur 20minutes.fr</strong><br /><br /></a><a href="http://www.20minutes.fr/monde/libye/1290674-20140205-libye-six-enfants-blesses-engin-explosif-ecole?xtor=RSS-176" rel="nofollow">Libye: attentat &agrave; la bombe dans une &eacute;cole &agrave; Benghazi, 12 enfants bless&eacute;s</a><br /><a href="http://www.20minutes.fr/monde/1290678-20140205-onu-presse-vatican-deferer-pedophiles-a-justice?xtor=RSS-176" rel="nofollow">L'ONU presse le Vatican de d&eacute;f&eacute;rer les p&eacute;dophiles &agrave; la justice</a><br /><a href="http://www.20minutes.fr/monde/irak/1290374-20140205-irak-sept-morts-attentats-a-bagdad?xtor=RSS-176" rel="nofollow">Irak: 24 morts dans de nouveaux attentats &agrave; Bagdad</a><br /><a href="http://www.20minutes.fr/monde/russie/1290610-20140205-jo-2014-flamme-a-sotchi-manifestations-monde?xtor=RSS-176" rel="nofollow">JO-2014: la flamme &agrave; Sotchi, des manifestations dans le monde</a><br /><a href="https://play.google.com/store/apps/details?id=com.backelite.vingtminutes&amp;hl=fr" rel="nofollow">T&eacute;l&eacute;chargez gratuitement l'application Android 20 Minutes</a><br /></p> 
    <!-- google_ad_section_end --> 
</div> 
</div> 
+0

Спасибо, это работает! – wawanopoulos

0

Если проанализировать страницу, вы увидите, что div.mediaarticlebody не существует. Нет div с классом mediaarticlebody. Вместо этого есть DIV с идентификатором mediaarticlebody, так что ваш выбор должен быть

div#mediaarticlebody 
+0

Oups, да хорошая точка. Я пробовал с вашим советом, и я не получаю никакого контента. – wawanopoulos

Смежные вопросы