大家好,我是码农飞哥。一个专注于AI+RPA提效的资深Python开发工程师,全网15万粉丝,影刀高级认证工程师,关注并私聊我即送公众号爆文机器人。
熟悉我的宝子们,都知道我现在开发各类RPA机器人,目前已经投入使用的机器有十几款,有需要的小伙伴可以私聊我。
周末我在家里唱着歌儿,搬着砖的时候,突然微信一个弹框提醒提示我该生财打卡了。我一看,哦,原来是我报名了生财有术的AI编程大航海了呀。
其中一个很重要的任务就是通过AI大模型,让大模型编写代码爬取公众号的文章。
你是一个资深爬虫开发工程师,擅长使用Python语言编写爬虫程序,现在有如下任务:
写一个爬虫程序,按下面的要求在我的 windows 电脑上帮我抓取微信公众号文章。
使用 python3 和最新版的 selenium
目标网站:https://weixin.sogou.com/
输入关键字[ RPA ],点击[ 搜文章 ]按钮
爬取内容: 爬取标题、摘要、链接、来源
爬取后的内容保存到Excel文件中,Excel文件命名为AI_微信_时间
爬取前5页,每爬完1页休眠5s
请首先解析目标网站,然后给我完整可运行的程序,让我看到浏览器中操作的过程,并指导我安装程序依赖的所有库。
你可以先执行步骤 2 和步骤 3 了解网页的结构,然后再生成代码。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from openpyxl import Workbook
# 配置WebDriver
chrome_drive_path = r'E:\develop\chromedriver-win64\chromedriver.exe'
# 设置ChromeDrive服务
service = Service(chrome_drive_path)
# 初始化WebDriver
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# 目标网站
url = "https://weixin.sogou.com/"
# 爬取前5页
pages_to_scrape = 5
# 打开目标网站
driver.get(url)
# 等待页面加载
time.sleep(2)
# 找到搜索框并输入关键字
search_box = driver.find_element(By.CSS_SELECTOR, "input.sec-input")
search_box.send_keys("RPA")
# 找到搜索按钮并点击
search_button = driver.find_element(By.XPATH, "//input[@uigs=\"search_article\"]")
search_button.click()
# 创建Excel工作簿
wb = Workbook()
ws = wb.active
ws.append(["标题", "摘要", "链接", "来源"])
# 开始爬取
for page in range(pages_to_scrape):
# 等待页面加载
time.sleep(5)
# 找到所有文章的容器
articles = driver.find_elements(By.XPATH, "//ul[@class=\"news-list\"]/li")
for article in articles:
# 爬取标题
title = article.find_element(By.XPATH, ".//section/h3").text
# 爬取摘要
summary = article.find_element(By.XPATH, ".//section/p").text
# 爬取链接
link = article.find_element(By.XPATH, ".//section/h3/a").get_attribute("href")
# 爬取来源
source = article.find_element(By.XPATH, ".//section/section").text
# 将爬取的数据写入Excel
ws.append([title, summary, link, source])
# 如果不是最后一页,点击下一页
if page < pages_to_scrape - 1:
next_page_button = driver.find_element(By.XPATH, ".//a[@id=\"sogou_next\"]")
next_page_button.click()
time.sleep(5) # 休眠5秒
# 保存Excel文件
current_time = time.strftime("%Y%m%d_%H%M%S")
file_name = f"RPA_微信_{current_time}.xlsx"
wb.save(file_name)
# 关闭浏览器
driver.quit()
print(f"爬取完成,数据已保存至 {file_name}")