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

运行Python网页爬虫代码仅输出0,无法抓取aspx页面文章信息怎么办?

问题排查与修复说明

核心疑问解答

.aspx后缀的站点不存在爬虫兼容性问题,它属于普通服务端渲染的web页面,和其他后缀的公共页面爬取逻辑没有差异,你的代码运行后仅输出0完全是代码逻辑错误导致的。

代码存在的具体问题

  • 解析器选择错误:你参考RSS爬虫教程使用了xml解析器,但当前目标页面是普通HTML格式,XML解析器无法正确识别HTML DOM结构,导致所有元素查找操作都返回空,这是你打印len(articles)输出0的直接原因。
  • 元素查找规则错误:你代码中查找的blog_section、blog_title等标签是RSS Feed特有的自定义标签,普通HTML页面不存在这类标签,需要先通过浏览器F12开发者工具查看目标站点的实际DOM结构,匹配正确的元素选择器。
  • 逻辑BUG:
    1. 遍历文章列表的循环内第一时间执行了return,即使前面逻辑正确也只能拿到第一条数据
    2. 往正在遍历的articles列表中直接追加新元素,会触发无限遍历问题
    3. 连续写了多个return语句,第一个return之后的代码永远不会执行

修正后的参考代码

from bs4 import BeautifulSoup
import requests

url = 'https://tymeinc.com/newsroom/press-releases/default.aspx'

def news(url):
    try:
        # 加请求头模拟浏览器,避免被站点反爬拦截
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
        }
        r = requests.get(url, headers=headers)
        # 改用HTML解析器
        soup = BeautifulSoup(r.text, features='html.parser')
        # 按当前目标页面实际DOM结构调整选择器
        articles = soup.find_all('div', class_='module_item')
        print(f"找到文章总数:{len(articles)}")
        result = []
        for a in articles:
            title = a.find('div', class_='blog_title').get_text(strip=True)
            link = 'https://tymeinc.com' + a.find('a')['href']
            published = a.find('div', class_='module_date-time').get_text(strip=True)
            article = {
                'blog_title': title,
                'blog_link': link,
                'module_date-time': published
            }
            result.append(article)
        # 遍历完成后统一输出结果
        for item in result:
            print(item)
        return result
    except Exception as e:
        print('爬取失败,错误信息:', e)

news(url)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 14:00:00