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

网页抓取遇「加载按钮」问题:无法获取全部通讯稿URL

解决仅能抓取第一页通讯稿URL的问题

你的代码仅请求了网站首页,未处理分页逻辑,因此只能获取第一页内容。以下是修改后的代码,可自动遍历所有分页并抓取全部通讯稿URL:

修改后代码

from bs4 import BeautifulSoup
import requests
from urllib.parse import urljoin

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
base_url = "https://news.matdesousa.com/"
current_url = base_url

while True:
    # 请求当前页面
    response = requests.get(current_url, headers=headers)
    response.raise_for_status()  # 捕获请求失败异常
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 提取当前页面的通讯稿链接
    inner_divs = soup.find_all('div', class_='group h-full overflow-hidden transition-all shadow-none hover:shadow-none rounded-lg')
    for inner_div in inner_divs:
        link = inner_div.find('a')['href']
        full_link = urljoin(base_url, link)  # 拼接为绝对URL
        print(full_link)
    
    # 查找下一页链接
    next_page = soup.find('a', rel='next')
    if not next_page:
        break  # 无下一页则退出循环
    current_url = urljoin(base_url, next_page['href'])

代码说明

  • 用urljoin处理相对链接,确保获取完整的URL地址
  • 通过rel='next'属性定位下一页按钮,适配该网站的分页标记规则
  • 循环请求直到无下一页链接为止,实现全量抓取
  • 加入response.raise_for_status()捕获请求异常,避免页面加载失败导致的错误

内容的提问来源于stack exchange,提问作者Ali Nawab Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:23:22