在本文中,我们将介绍如何使用 Python 和 Selenium 爬取搜狗微信搜索中的文章信息。我们将通过关键词搜索,提取文章的标题、链接、描述、发布者和发布时间,并将这些数据保存到 CSV 文件中。本文适合有一定 Python 和 Selenium 基础的读者。
1. 环境准备
在开始之前,我们需要安装一些必要的库:
-
selenium
:用于自动化浏览器操作。 -
csv
:用于将数据保存到 CSV 文件。 -
urllib
:用于 URL 编码。 -
time
和random
:用于控制爬取速度,避免被反爬虫机制检测到。
此外,还需要下载chrome
浏览器,以及对应版本的 chromedriver
,并将其路径配置到代码中。详情请见:Chrome for Testing availability
pip install selenium
2. 初始化 Selenium WebDriver
首先,我们需要初始化 Selenium WebDriver。我们将使用 Chrome 浏览器,并设置为无头模式(headless),这样可以在后台运行浏览器而不显示界面。控制最大页面是因为超出10页以后,会启用微信验证。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
CHROMEDRIVER_PATH = r'你的chromedriver.exe路径'
class WeixinSogouScraper:
def __init__(self, query, max_page=1):
self.max_page = max(1, min(10, max_page)) # 确保 max_page 在 1 到 10 之间
self.query = query
self.driver = self._init_driver()
def _init_driver(self):
"""初始化 Selenium WebDriver"""
chrome_options = Options()
chrome_options.add_argument("--headless") # 无头模式
chrome_options.add_ar