【发布时间】:2020-06-09 09:49:36
【问题描述】:
我正在尝试使用 python 从谷歌地图中抓取一个地方的标题、电话号码、网站、地址、评级、评论数量。例如,Pike's Landing 餐厅(请参阅下面的谷歌地图 URL)需要所有信息。我想把它们拉到 python 中。
网址:https://www.google.com/maps?cid=15423079754231040967&hl=en
我在检查时可以看到 HTML 代码,但是当我使用漂亮的汤进行 scraping 时,所有代码都会被转换。从堆栈溢出中,我找到了唯一的审查数量的解决方案,如下代码,
import re
import requests
from ast import literal_eval
urls = [
'https://www.google.com/maps?cid=15423079754231040967&hl=en',
'https://www.google.com/maps?cid=16168151796978303235&hl=en']
for url in urls:
for g in re.findall(r'\[\\"http.*?\d+ reviews?.*?]', requests.get(url).text):
data = literal_eval(g.replace('null', 'None').replace('\\"', '"'))
print(bytes(data[0], 'utf-8').decode('unicode_escape'))
print(data[1])
但我需要所有数据。我可以使用 Google Maps API 来获取实际数据,但现在获取电话号码、评级、评论不是免费的。所以我想从前端转义数据。
请帮帮我。
【问题讨论】:
-
你需要使用 Selenium 或其他一些无头浏览器来抓取它。
-
你检查你需要的数据是否是动态生成的?
标签: python django web-scraping