You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium与BeautifulSoup爬取数据仅前50条导出至CSV是什么原因?

问题根因

你生成BeautifulSoup对象的时机错误:当前代码在执行点击「加载更多」的循环操作前,就已经调用driver.page_source获取了初始页面的源码并生成了soup对象,后续加载出来的新商品数据完全没有被同步到这个soup里,所以最终查找元素时只能拿到页面初始加载的50条数据。

修复方案

调整代码逻辑顺序,将获取页面源码、生成soup的操作移动到所有加载操作完成之后,同时优化冗余逻辑:

import csv
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup

wait = WebDriverWait(driver, 30)

# 加载更多逻辑
while True:
    try:
        # 等待加载按钮可点击
        load_more_btn = wait.until(EC.element_to_be_clickable((By.ID, 'showmoreresult')))
        # 点击按钮
        driver.execute_script("arguments[0].click();", load_more_btn)
        # 滚动到底部
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        # 等待1秒确保新内容渲染完成,可根据实际加载速度调整时长
        time.sleep(1)
    except TimeoutException:
        # 按钮消失,全部加载完成,跳出循环
        break

# 全部加载完成后,再获取最新页面源码生成soup
html = driver.page_source
soup = BeautifulSoup(html, features="html.parser")

# 导出描述信息
records_list = soup.find_all("div", class_="desc")
print(records_list)
with open(r'C:\directory\details.csv', 'a', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    for item in records_list:
        # 直接提取纯文本内容,无需存储完整div标签,减少后续数据处理成本
        writer.writerow([item.get_text(strip=True)])
    writer.writerow(["New webpage"])

# 导出图片链接
image_links = soup.find_all("div", class_="thumb")
print(image_links)
with open(r'C:\directory\image_urls.csv', 'a', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    for item in image_links:
        img_tag = item.find("img")
        if img_tag:
            # 直接提取图片链接存储
            writer.writerow([img_tag.get("src", "")])
    writer.writerow(["New webpage"])

额外优化建议

  • 写CSV时指定encoding='utf-8'可以避免特殊字符、外文乱码问题
  • with open上下文会自动关闭文件,不需要手动调用f.close()
  • 原逻辑中的标志变量X可以直接省略,用try-except捕获超时直接跳出循环更简洁

内容的提问来源于stack exchange,提问作者Jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:45:01