JSoup - Ошибка при извлечении содержимого div - PullRequest
1 голос
/ 20 января 2012

Я работаю над проектом Android и в настоящее время играю с JSoup, чтобы извлечь данные с веб-сайта для приложения.

Сайт, на который я нацеливаюсь, здесь .

И я хочу извлечь основной информационный текст. Xpath для этого div

//div[@id='wikiAbstract']

Мой полный код выглядит следующим образом

public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

   TextView tv = (TextView) findViewById(R.id.textView1);
   Document doc = null;

   try {
       doc = Jsoup.connect("http://www.last.fm/music/Bright+Eyes").get();

   } catch (IOException e) {
       e.printStackTrace();
   }

   Element divs = doc.select("div#wikiAbstract").first();
   tv.setText(divs.text());

}

Однако я получаю исключение Null Pointer. Я проверил тот же код на других сайтах и ​​Div, и он отлично работает. Я не могу понять, почему это не так.

Буду признателен за любую помощь / обратную связь от всех, заранее спасибо.

Ответы [ 2 ]

1 голос
/ 23 января 2012

Ах, хорошо, поэтому html-контент с здесь исходил от мобильной версии сайта last.fm, так что идентификаторы div были другими.Вы можете добавить заголовок запроса агента пользователя к соединению, чтобы гарантировать, что весь веб-сайт запрашивается, или просто убедиться, что вы получаете правильные идентификаторы div с мобильного сайта

Document doc = Jsoup.connect(myURL)
                .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1")
                .get();
0 голосов
/ 20 января 2012

Это полная программа:

public static void main(String[] args) throws IOException {
    Document doc = Jsoup.connect("http://www.last.fm/music/Bright+Eyes").get();
    Element content = doc.select("div#wikiAbstract").first();
    System.out.println(content.text());
}

Выходы (укороченные):

Bright Eyes - это группа, состоящая в основном из американского певца, гитариста, и автор песен Конор Оберст. Яркие глаза также есть мультиинструменталист / продюсер Майк Могис, клавишник Нейт Уолкотт и ротация сотрудников, привлеченных в основном из Омаха, Небраска и ...

... что означает, что ваша ошибка находится в другом месте . Может быть textView это null?

Общий урок заключается в том, что он платит за то, чтобы извлечь часть, которая, по вашему мнению, терпит неудачу, и подтвердить ваши подозрения, прежде чем двигаться дальше.

...