Android: raspando artículos con jsoup

Primero, resumiremos lo que estoy tratando de hacer. Estoy construyendo una aplicación de Android para mi escuela que básicamente raspa los artículos de mis publicaciones esqueueres en su website y primero los enumera en una vista de reciclador y luego puede leerlos en una vista detallada.

Para la parte de raspado, uso Jsoup. Obtuve la vista detallada y también la de reciclaje. Todo funciona bien sin la parte de raspado.

Cuando raspo un solo artículo para la vista detallada, funciona sin problemas. El problema es cuando trato de borrar todos los títulos de la página web y mostrarlos en mi vista de reciclador.

Aquí hay una captura de pantalla de lo que estoy tratando de raspar y mi código:

Captura de pantalla anotada fuente de la página web

Estoy tratando de get todos los títulos y las direcciones URL. Aquí hay una parte del código del website, necesito lo que hay en los tramos con "font-size: 1em"; y el enlace href.

<div class="col-xs-6 col-sm-4 col-md-3" class="derniers3articles" style="height:250px;"> <a href="https://legymnase.eu/2017/11/frum-franco-allemand/" style="text-decoration:none;"> <figure class="mini_img"><img src="http://img.flipandroid.com/java/forumff-250x150.jpg" width="250" height="150" alt="" class="image3derniers arrondie"></figure> <span style="color:grey;">20-Nov-2017</span><br> <span style="font-size:1em;">Forum franco-allemand</span> </a> 

18-nov-2017
Les élèves de 1ES, de futurs citoyens … 14-Nov-2017
Ventes de gâteaux afin de financer le …

Aquí está mi código:

 class LyceeList : AppCompatActivity() { var titles = ArrayList<String>() var urls = ArrayList<String>() var articles = ArrayList<Article>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_lycee) val recyclerView = findViewById<RecyclerView>(R.id.lyceeRecycler) as RecyclerView recyclerView.layoutManager = LinearLayoutManager(this, LinearLayout.VERTICAL, false) val recupArticles: AsyncTask<Void, Void, Void>? = RecupArticles().execute() for (i in 0 until urls.size) { articles.add(Article(urls[i], titles[i])) } val adapter = LyceeAdapter(articles) recyclerView.adapter = adapter } inner class RecupArticles : AsyncTask<Void, Void, Void>() { override fun doInBackground(vararg p0: Void?): Void? { try { var doc: Document = Jsoup.connect("https://legymnase.eu/lycee/").get() val titlesElement : Elements = doc.select("div.derniers3articles > span") val urlsProvisory : Elements = doc.select("div.derniers3articles > a") val urlsElement : Elements = doc.select("a[href]") for (i in 0 until titlesElement.size) { titles[i] = titlesElement.get(i).text() } for (i in 0 until urlsElement.size) { urls[i] = urlsElement.get(i).text() } } catch (e: Exception) { e.printStackTrace() } return null } override fun onPostExecute(result: Void?) { super.onPostExecute(result) } } 

}

Si agrego manualmente un artículo como .add (Artículo ("Testurl", "TestTitle") aparece en la vista del reciclador. Pero no es así. Después de varias testings, siento que en mi ciclo en Crear, las matrices están vacío … ¿Tienes alguna idea, por favor?

Además, otro problema secundario: ¿cómo puedo implementar onclicklistener en las vistas de tarjeta únicas para enviar la URL a la actividad "articleDetail" y abrirla? ¿Debo include la URL como extra en la intención? (esta pregunta es secundaria, la primera es la que hay que resolver).

Muchas gracias de antemano!

Solutions Collecting From Web of "Android: raspando artículos con jsoup"