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

VSCode中Jupyter Notebook循环内Python print语句无输出求助

问题解决:VSCode Jupyter Notebook中循环内print无输出

核心原因

你的循环代码根本没执行——soup.find_all('div', class_='results')没有匹配到任何元素,返回了空列表,所以for循环一次都没跑。外部的print(msg)正常是因为它不在循环里,不受影响。

修复步骤

  1. 确认请求是否成功
    在获取页面后添加状态码检查,确保网页请求正常:

    page = requests.get(url, headers=HEADERS)
    print(page.status_code)  # 正常应返回200
    
  2. 修正元素选择器
    查看Yellow Pages实际网页结构,商家列表的容器类名不是results,而是result(每个单独商家对应的div)。修改代码:

    # 替换原有的main赋值语句
    main = soup.find_all('div', class_='result')
    
  3. 添加异常处理(可选)
    避免因个别商家缺失business-name标签导致代码崩溃:

    for m in main:
        restaurant_name_tag = m.find('a', class_='business-name')
        if restaurant_name_tag:
            print(restaurant_name_tag.text)
        else:
            print("未找到商家名称")
    

完整修正后的代码

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
import re

HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/101.0.4951.54 Safari/537.36',
    'Connection': 'keep-alive',
    'Referer': 'https://google.com',
    'DNT': '1',
    'Accept-Language': 'en-GB,en;q=0.5'
}

url = 'https://www.yellowpages.com/los-angeles-ca/restaurants?page=1'
page = requests.get(url, headers=HEADERS)
print(page.status_code)  # 确认请求成功

soup = BeautifulSoup(page.content, 'html.parser')
main = soup.find_all('div', class_='result')  # 修正选择器

for m in main:
    restaurant_name_tag = m.find('a', class_='business-name')
    if restaurant_name_tag:
        print(restaurant_name_tag.text)

msg = 'Hello World!'
print(msg)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:33:12