Как получить доступ к типу места (widget-pane-link) из Google Maps из python, используя Beautiful Soup - PullRequest
0 голосов
/ 07 апреля 2019

Google Maps type of place tag

Я пытаюсь получить тег Американский ресторан под именем El Merendero и обзор 4.1 с использованием python и красивого супа, но я не смог войти. Любой совет, как найти эту категорию карт Google?

то, что я получил, это текст с некоторой ошибкой Javascript, я думаю:

Включите JavaScript для просмотра Google Maps.

Мой код:

import requests
from bs4 import BeautifulSoup

Query = " Restaurant el merendero "

durl= "https://www.google.com/maps/search/?api=1&query=%s" % Query
page = requests.get(durl)
soup = BeautifulSoup(page.content, 'html.parser')

unicode_str = soup.decode("utf8")
encoded_str = unicode_str.encode("ascii",'ignore')
news_soup = BeautifulSoup(encoded_str, "html.parser")
a_text = news_soup.find_all('div')
print(a_text)

1 Ответ

1 голос
/ 07 апреля 2019

Это связано с тем, что карта Google отображается как одностраничное приложение с Angular (я полагаю).

BeautifulSoup не может выполнить Javascript, поэтому вам необходимо выполнить код Javascript (например:с Selenium или Splash или любым браузером без головы), прежде чем он сможет реально просматривать и сканировать отображаемый HTML.

См. этот репозиторий, содержащий пример того, что вы пытаетесьдля достижения: https://github.com/registerguard/spa_scraper

Вы можете стать свидетелем того, что я говорю, отключив Javascript в вашем браузере и перейдя на Google Maps.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...