Scraping Reddit con Python y BeautifulSoup

En este artículo vamos a ver cómo raspar Reddit con Python y BeautifulSoup. Aquí usaremos Beautiful Soup y el módulo de solicitud para raspar los datos.

Módulo necesario

  • bs4 :Beautiful Soup (bs4) es una biblioteca de Python para extraer datos de archivos HTML y XML. Este módulo no viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install bs4
  • requests :Request le permite enviar requests HTTP/1.1 de manera extremadamente fácil. Este módulo tampoco viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install requests

Acercarse:

  • Importe todos los módulos necesarios.
  • Pase la URL en la función getdata (UDF) a la que solicitará una URL, devuelve una respuesta. Estamos usando el método GET para recuperar información del servidor dado usando una URL dada.

Sintaxis: requests.get(url, argumentos)

  • Ahora analice el contenido HTML usando bs4.

Sintaxis: sopa = BeautifulSoup(r.content, ‘html5lib’)

Parámetros:

  • r.content : es el contenido HTML sin procesar.
  • html.parser  : especificando el analizador HTML que queremos usar.
  • Ahora filtre los datos requeridos usando la función de sopa.Find_all.

Veamos la ejecución paso a paso del script.

Paso 1: importar todas las dependencias

Python3

# import module
import requests
from bs4 import BeautifulSoup

Paso 2: Cree una función de obtención de URL

Python3

# user define function
# Scrape the data
def getdata(url):
    r = requests.get(url, headers = HEADERS)
    return r.text

Paso 3: ahora tome la URL y pásela a la función getdata() y convierta esos datos en código HTML.

Python3

url = "https://www.reddit.com/r/learnpython/comments/78qnze/web_scraping_in_20_lines_of_code_with/"
  
# pass the url
# into getdata function
htmldata = getdata(url)
soup = BeautifulSoup(htmldata, 'html.parser')
    
# display html code
print(soup)

Producción:

Nota: Esto es solo código HTML o datos sin procesar.

Obtener el nombre del autor

Ahora busque autores con una etiqueta div donde class_ =”NAURX0ARMmhJ5eqxQrlQW”. Podemos abrir la página web en el navegador e inspeccionar el elemento relevante presionando el botón derecho como se muestra en la figura.

Ejemplo:

Python3

# find the Html tag
# with find()
# and convert into string
data_str = ""
for item in soup.find_all("div", class_="NAURX0ARMmhJ5eqxQrlQW"):
    data_str = data_str + item.get_text()
        
print(data_str)

Producción:

kashaziz

Obtener el artículo contiene

Ahora busque el texto del artículo, aquí seguiremos los mismos métodos que en el ejemplo anterior.

Ejemplo:

Python3

# find the Html tag
# with find()
# and convert into string
data_str = ""
result = ""
for item in soup.find_all("div", class_="_3xX726aBn29LDbsDtzr_6E _1Ap4F5maDtT1E1YuCiaO0r D3IL3FD0RFy_mkKLPwL4"):
    data_str = data_str + item.get_text()
print(data_str)

Producción:

Obtener los comentarios

Ahora elimine los comentarios, aquí seguiremos los mismos métodos que en el ejemplo anterior.

Python3

# find the Html tag
# with find()
# and convert into string
data_str = ""
  
for item in soup.find_all("p", class_="_1qeIAgB0cPwnLhDF9XSiJM"):
    data_str = data_str + item.get_text()
print(data_str)

Producción:

Publicación traducida automáticamente

Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *