Здравствуйте! Стал интересен парсинг html-страниц, начал разбираться с Jsoup, почитал несколько довольно стареньких гайдов по этому поводу(там можно было выводить информацию со stackoverflow), сначала понял что в новых версиях андроида, с версии 4.0 введён запрет сетевые операции в основном потоке. Таким образом наткнулся на более новый видео-гайд, где как пример использовался примитивненький новостной сайт какого-то города. Так вот, с этим примером, а так же с некоторыми другими сайтами все проходит как надо, а вот когда я пытаюсь попробовать со stackoverflow ничего не выходит. Код:
doc = Jsoup.connect("http://ru.stackoverflow.com/").get();
content = doc.select(".question-hyperlink");
titleList.clear();
Так же не выходит и с англоязычной версией, и с другими сайтами. Думал, может, дело в https, но ведь тут он не используется, как я понимаю. Полный рабочий код:
package com.example.jaredbay.parsesite;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends Activity {
public Elements content;
public ArrayList<String> titleList = new ArrayList<String>();
private ArrayAdapter<String> adapter;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.listView1);
new NewThread().execute();
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.pro_item, titleList);
}
public class NewThread extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... arg){
Document doc;
try {
doc = Jsoup.connect("http://www.6262.com.ua/news").get();
content = doc.select(".text");
titleList.clear();
for (Element contents: content){
titleList.add(contents.text());
}
}
catch (IOException e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result){
lv.setAdapter(adapter);
}
}
}
Помогите, пожалуйста, найти мою ошибку и как ее справить. Заранее спасибо! И с Новым годом всех!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При передаче объекта в качестве параметра методу ссылка должна копироватьсяТогда почему вывод 0 9 9, а не 9 9 9? Получается, s1 и s2 ссылаются на разные...
Добрый деньЕсть контроллер в котором есть метод поиска
Не могу найти ни один пример запроса Twitter Api androidЕсли кто может - предоставьте пример выполнения такого запроса в android