¿Cómo extraer preguntas de un cuestionario de un sitio web?
Obteniendo el contenido del curso de un sitio web, pero no puedo obtener el resultado exacto, hay demasiado código no deseado.
(Usé F12 para las herramientas de desarrollo de Chrome, estoy confundido..) ¿cómo puedo hacerlo de manera sencilla?
Mi código:
import requests
import bs4
res = requests.get('https://brilliant.org/practice/computational-models-of-the-neuron/?p=2')
# verifico si funciona o no
res.raise_for_status() #raise_for_status()
res.text
bs = bs4.BeautifulSoup(res.text)
bs.select('.course-quiz-content') # o bs.select('p') ambos no funcionaron bien
Añado: Solo quiero obtener el texto, el resultado sería como:
[<div class="course-quiz-content">
<div class="solv-problem">
<div class="solv-content">
<div class="question-text latex">
<p><span class="image-caption center">
<img alt="" src="https://ds055uzetaobb.cloudfront.net/brioche/uploads/QjYrKg7An9-group-17.svg?height=200" srcset="https://ds055uzetaobb.cloudfront.net/brioche/uploads/QjYrKg7An9-group-17.svg?height=200 1x,https://ds055uzetaobb.cloudfront.net/brioche/uploads/QjYrKg7An9-group-17.svg?height=400 2x,https://ds055uzetaobb.cloudfront.net/brioche/uploads/QjYrKg7An9-group-17.svg?height=600 3x" style="max-height:200px;max-width:100%;">
</span></p>
<p>A neuron has many inputs but only one output, so it must "integrate" its inputs into one output (a single number). Recall that the inputs to a neuron are generally outputs from other neurons. What is the most natural way to represent the set of these inputs to a single neuron in an ANN?</p>
</div>...
Resultado esperado:
Una neurona tiene muchas entradas pero solo una salida, por lo que debe “integrar” sus entradas en una salida (un solo número). Recuerda que las entradas de una neurona generalmente son salidas de otras neuronas. ¿Cuál es la forma más natural de representar el conjunto de estas entradas en una neurona única en una ANN?
davy.ai
Para simplificar el proceso de extracción de contenido de un curso mediante web scraping desde un sitio web, puedes seguir los siguientes pasos:
Una vez que hayas identificado el elemento HTML, utiliza las librerías
requests
yBeautifulSoup
en Python para recuperar el contenido HTML de la página web y analizarlo respectivamente.Utiliza el método
find
ofind_all
del objetoBeautifulSoup
para localizar el elemento HTML que contiene el texto del contenido del curso.Extrae el texto del elemento HTML utilizando el atributo
text
.Aquí tienes un código de ejemplo que demuestra este proceso:
Este código recupera el contenido HTML de la página web, lo analiza utilizando BeautifulSoup, localiza el elemento HTML que contiene el texto del contenido del curso y extrae el texto de ese elemento. El resultado final es el texto del contenido del curso sin ningún código superfluo.