
本教程详细介绍了如何利用Selenium自动化浏览器抓取Google地图上的商家评论。文章聚焦于解决动态加载评论(通过滚动)和处理被截断的评论(点击“更多”按钮)两大挑战。通过提供清晰的步骤、示例代码和最佳实践,旨在帮助读者构建一个稳定、高效的评论抓取解决方案,确保获取到每一条评论的完整内容。
1. 引言:Google地图评论抓取的挑战
Google地图的评论页面通常采用动态加载机制,这意味着初始页面仅显示部分评论。用户需要滚动页面才能加载更多评论。此外,为了保持页面简洁,较长的评论会被截断,显示一个“更多”按钮。要获取这些评论的完整内容,必须模拟点击这些“更多”按钮。本教程将详细讲解如何使用Python和Selenium库应对这些挑战,实现Google地图评论的全面抓取。
2. 环境准备与Selenium基础配置
在开始之前,请确保您的Python环境中已安装Selenium库和对应浏览器(如Chrome)的WebDriver。
pip install selenium webdriver-manager
登录后复制
初始化WebDriver
我们将使用Chrome浏览器进行演示。webdriver-manager库可以帮助我们自动管理ChromeDriver的版本。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import TimeoutException, NoSuchElementException, StaleElementReferenceException
import time
# 目标Google地图商家评论页面的URL
# 请替换为你要抓取的实际URL
TARGET_URL = 'https://www.google.com/maps/place/Henn+na+Hotel+Tokyo+Asakusa+Tawaramachi/@35.7081692,139.7888494,17z/data=!4m22!1m12!3m11!1s0x60188f36ab21f05b:0x9241dab287ff62c9!2sHenn+na+Hotel+Tokyo+Asakusa+Tawaramachi!5m2!4m1!1i2!8m2!3d35.7081692!4d139.7914243!9m1!1b1!16s%2Fg%2F11h0gzlhht!3m8!1s0x60188f36ab21f05b:0x9241dab287ff62c9!5m2!4m1!1i2!8m2!3d35.7081692!4d139.7914243!16s%2Fg%2F11h0gzlhht?entry=ttu'
# 配置Chrome选项
chrome_options = Options()
# chrome_options.add_argument('--headless') # 无头模式运行,不显示浏览器界面
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--start-maximized') # 启动时最大化窗口,确保元素可见
# 初始化WebDriver
driver = webdriver.Chrome(options=chrome_options)
driver.get(TARGET_URL)登录后复制
3. 处理Cookie同意弹窗
许多网站在首次访问时会显示Cookie同意弹窗。我们需要识别并点击同意按钮以继续。
标签: python html go windows cookie 浏览器 app safari mac csv ai win
还木有评论哦,快来抢沙发吧~