¿Cómo puedo raspar la latitud y la longitud de los resultados de Google en la imagen a continuación con una hermosa sopa?

Resultado de Google latitud longitud

enter image description here

-1
Soumya 22 jun. 2020 a las 20:05

2 respuestas

La mejor respuesta

Aquí está el código para hacerlo con bs4:

from requests import get
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',}
response = get("https://www.google.com/search?q=latitude+longitude+of+75270+postal+code+paris+france",headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
a = soup.find("div", class_= "Z0LcW").text
print(a)
0
Osadhi Virochana Jayasinghe Si 22 jun. 2020 a las 17:34

Proporcione más información sobre otras preguntas, ya que no queremos hacer el trabajo previo para crear una solución.

Tendrás que agarrar este contenedor:

<div class="HwtpBd gsrt PZPZlf" data-attrid="kc:/location/location:coordinates" aria-level="3" role="heading"><div class="Z0LcW XcVN5d">48.8573° N, 2.3370° E</div><div></div></div>

BS4

#BeautifoulSoup Stuff
import requests
from requests.packages.urllib3.util.retry import Retry
from bs4 import BeautifulSoup
import re


# Make the request
url = "https://www.google.com/search?q=latitude+longitude+of+75270+postal+code+paris+france&rlz=1C1CHBF_deDE740DE740&oq=latitude+longitude+of+75270+postal+code+paris+france&aqs=chrome..69i57.4020j0j8&sourceid=chrome&ie=UTF-8"

        response = requests.get(url)

        # Convert it to proper html
        html = response.text

        # Parse it in html document
        soup = BeautifulSoup(html, 'html.parser')

        # Grab the container and its content
        target_container = soup.find("div", {"class": "Z0LcW XcVN5d"}).text

Entonces tienes una cadena dentro de la div devuelta.

Suponiendo que google no cambia las declaraciones de clase al azar. Intenté cinco actualizaciones y el nombre de la clase no cambió, pero quién sabe.

0
Jonas 22 jun. 2020 a las 17:23