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

使用BS4爬取奥地利医院数据遇无输出及AttributeError问题求助

问题分析与解决方案

一、初始BS4代码无输出的原因及修复

  • 请求被反爬拦截
    很多网站会识别非浏览器请求头,Colab默认请求头容易被判定为爬虫。添加模拟浏览器的请求头即可解决:

    import requests
    from bs4 import BeautifulSoup
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    url = 'https://www.klinikguide.at/oesterreichs-kliniken/'
    response = requests.get(url, headers=headers)
    # 先检查响应状态码,200代表正常
    print(response.status_code)
    soup = BeautifulSoup(response.text, 'html.parser')
    

    如果状态码是403/401,可补充Accept-Language等请求头,或用session维持连接。

  • 数据动态加载
    该网站可能用JavaScript渲染内容,BS4只能解析静态HTML。这种情况换用Selenium抓取动态内容(Colab环境适用):

    # 先在Colab安装依赖
    !pip install selenium
    !apt-get update && !apt-get install -y chromium-chromedriver
    
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from bs4 import BeautifulSoup
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get('https://www.klinikguide.at/oesterreichs-kliniken/')
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    driver.quit()
    
  • 选择器错误
    可能你写的BS4选择器(如find/find_all的参数)和页面实际结构不匹配。先打印soup.prettify()查看页面源码,确认目标元素的正确选择器。

二、AttributeError: 'NoneType' object has no attribute 'groupdict'的修复

这个错误是因为你调用正则的groupdict()方法时,匹配结果为None(正则没找到对应内容)。修复方法:

  1. 检查正则表达式是否和目标文本格式匹配,调整正则规则;
  2. 调用groupdict()前先判断匹配结果是否有效:
    import re
    
    pattern = re.compile(r'你的正则表达式')
    match_result = pattern.search(目标文本)
    if match_result:
        data = match_result.groupdict()
        # 处理提取到的数据
    else:
        print("未匹配到内容")
        # 可设置默认值或跳过当前条目
    
    比如提取医院电话、地址时,部分条目可能缺失对应内容,必须加判断避免报错。

额外调试建议

  • 分步打印中间结果:比如先打印响应文本前500字符,确认是否获取到正确页面;打印正则匹配前的目标文本,验证规则是否适用;
  • 查看网站robots.txt确认爬取权限,避免违反网站规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:07:18