Как получить текст с этой html-страницы с помощью jsoup? - PullRequest
1 голос
/ 10 августа 2011

Я использую этот код для получения текста в основной статье на этой странице.

public class HtmlparserExampleActivity extends Activity {
String outputtext;
  TagFindingVisitor visitor;
  Parser parser = null;
private static final String TAG = "TVGuide";



TextView outputTextView;

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

    outputTextView = (TextView)findViewById(R.id.outputTextView);
    String id = "main-article-content";
    Document doc = null;

    try {
        doc = Jsoup.connect("http://movies.ign.com/articles/100/1002569p1.html").get();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    Log.i("DOC", doc.toString().toString());
    Elements elementsHtml = doc.getElementsByTag(id);  
    String[] temp1 = new String[99];    
    int i =0;
    for(Element element: elementsHtml)
    {

        temp1[1] = element.text();
        i++;
        outputTextView.setText(temp1[1]);

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

1 Ответ

2 голосов
/ 12 августа 2011

Вот упрощенная выдержка из вашего вопроса:

Document doc = Jsoup.connect("http://movies.ign.com/articles/100/1002569p1.html").get();
Elements elementsHtml = doc.getElementsByTag("main-article-content");  
// ...

Вы делаете фундаментальную ошибку здесь. В документе нет HTML-тегов типа <main-article-content>. Тем не менее, есть <div id="main-article-content">. Согласно обзору селектора CSS на полпути этой поваренной книги Jsoup , вы должны использовать селектор #id.

Document doc = Jsoup.connect("http://movies.ign.com/articles/100/1002569p1.html").get();
Element mainArticleContent = doc.select("#main-article-content").first();  
// ...
...