En este artículo, vamos a ver cómo raspar los resultados de búsqueda de Google usando Python BeautifulSoup.
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: Requests le permite enviar requests HTTP/1.1 con mucha facilidad. Este módulo tampoco viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install requests
Acercarse:
- Importe las bibliotecas beautifulsoup y request.
- Cree dos strings con la URL de búsqueda predeterminada de Google, ‘https://google.com/search?q=’ y nuestra palabra clave de búsqueda personalizada.
- Concatene estas dos strings para obtener nuestra URL de búsqueda.
- Obtenga los datos de la URL mediante request.get(url), guárdelos en una variable, request_result .
- Cree una string y almacene el resultado de nuestra solicitud obtenida, utilizando request_result.text.
- Ahora usamos BeautifulSoup para analizar la página extraída. Simplemente podemos crear un objeto para realizar esas operaciones, pero beautifulsoup viene con muchas funciones integradas para raspar la web. Primero creamos un objeto de sopa usando beautifulsoup de la solicitud-respuesta
- Podemos hacer soup.find.all(h3) para capturar todos los encabezados principales de nuestro resultado de búsqueda, iterar a través del objeto e imprimirlo como una string.
Ejemplo 1: A continuación se muestra la implementación del enfoque anterior.
Python3
# Import the beautifulsoup # and request libraries of python. import requests import bs4 # Make two strings with default google search URL # 'https://google.com/search?q=' and # our customized search keyword. # Concatenate them text= "geeksforgeeks" url = 'https://google.com/search?q=' + text # Fetch the URL data using requests.get(url), # store it in a variable, request_result. request_result=requests.get( url ) # Creating soup from the fetched request soup = bs4.BeautifulSoup(request_result.text, "html.parser") print(soup)
Producción:
Hagamos Soup.find.all(h3) para capturar todos los encabezados principales de nuestro resultado de búsqueda, iterar a través del objeto e imprimirlo como una string.
Python3
# soup.find.all( h3 ) to grab # all major headings of our search result, heading_object=soup.find_all( 'h3' ) # Iterate through the object # and print it as a string. for info in heading_object: print(info.getText()) print("------")
Producción:
Ejemplo 2: A continuación se muestra la implementación. En forma de extraer la temperatura de la ciudad usando la búsqueda de Google:
Python
# import module import requests import bs4 # Taking thecity name as an input from the user city = "Imphal" # Generating the url url = "https://google.com/search?q=weather+in+" + city # Sending HTTP request request_result = requests.get( url ) # Pulling HTTP data from internet soup = bs4.BeautifulSoup( request_result.text , "html.parser" ) # Finding temperature in Celsius. # The temperature is stored inside the class "BNeawe". temp = soup.find( "div" , class_='BNeawe' ).text print( temp )
Producción:
Publicación traducida automáticamente
Artículo escrito por akashkumarsen4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA