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

爬取二手市场商品列表时部分HTML结构异常Selenium加载失败如何解决

问题原因
  • 节点混淆:你抓取的container_related类同时被网站用于商品和第三方广告位占位,带data-engageya属性的是广告位节点,本身就不会加载商品结构,和页面加载是否完成无关。
  • 分页逻辑错误:原有代码把page_num递增放在了商品遍历循环内部,每遍历1个商品就跳1页,导致大部分分页内容没有正常请求,拿到的节点本身就是错误页的内容。
  • 懒加载未触发:部分网站商品用滚动懒加载机制,不滚动到对应视口位置,后端不会返回商品内容,节点会保持占位符状态,硬等固定时长无法触发渲染。
解决方案

基础修复(requests版本)

  1. 过滤无效广告节点,抓取时直接排除带data-engageya属性的容器:
products = soup.find_all('div', class_='container_related', attrs={'data-engageya': None})
  1. 修正分页逻辑,将page_num += 1移到while循环末尾,处理完一整页再翻页,同时增加容错判断避免异常中断:
def cj_search(location='portugal', search_term='gtx+1080'):
    headers = {'user-agent': 'Mozilla/5.0'}
    page_num = 1
    while True:
        page = requests.get(f'https://www.custojusto.pt/{location}/q/{search_term}?o={page_num}&sp=1&st=a', headers=headers)
        soup = BeautifulSoup(page.text, 'lxml')
        # 过滤广告节点
        products = soup.find_all('div', class_='container_related', attrs={'data-engageya': None})
        if not products:
            break
        for product in products:
            # 加容错判断,避免节点异常中断程序
            try:
                product_name = product.find('h2', class_='title_related').find('b').text
                product_price = float(product.find('h5', class_='price_related').text.strip()[:-2])
                product_link = product.find('a')['href']
                print(f'Name: {product_name}\nPrice: {product_price}€\nLink: {product_link}\n')
            except AttributeError:
                continue
        # 分页递增移到此处
        page_num += 1

Selenium版本优化

针对懒加载场景,替换固定时长等待为滚动触发加载:

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(f'https://www.custojusto.pt/{location}/q/{search_term}?o={page_num}&sp=1&st=a')
# 模拟滚动3次触发全页懒加载
for _ in range(3):
    # 滚动到页面底部
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # 等待内容加载
    time.sleep(2)
soup = BeautifulSoup(driver.page_source, 'lxml')
# 后续同样过滤广告节点再解析即可

内容的提问来源于stack exchange,提问作者André Clérigo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:48:00