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

网页抓取作业出现403错误,请求排查解决方法

网页抓取403错误的解决方法及代码修正

403错误是Yelp的反爬系统把你的请求识别成了非浏览器发起的爬虫请求,直接拒绝了访问。光加User-Agent往往不够,结合你的代码问题,给你分步解决:

一、强化请求头,模拟真实浏览器

Yelp会检查多个请求头字段,只加User-Agent不够,补充这些字段能大幅降低被拦截的概率:

  • Accept:告诉服务器你能接受的内容类型
  • Accept-Language:模拟浏览器的语言设置
  • Referer:模拟从搜索页面跳转过来的请求

二、添加请求延迟

频繁请求会触发反爬,每次请求后加1-3秒的延迟,避免被判定为恶意爬虫。

三、修正代码里的语法错误

你的代码存在几个明显bug,会导致即使请求成功也无法正常运行:

  1. for循环变量名重复(for listings in listings),应改为for listing in listings
  2. except语法错误,正确写法是except AttributeError:
  3. 变量拼写错误,循环里误用了listings代替listing

修正后的完整代码

import requests
from bs4 import BeautifulSoup
import time  # 导入time模块用于设置延迟

# Yelp目标页面URL
URL = "https://www.yelp.com/biz/whistle-stop-cafe-rockledge?osq=Coffee+Shops"

# 更完整的请求头,模拟真实Chrome浏览器(可替换成你自己浏览器的UA)
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    "Referer": "https://www.yelp.com/search?find_desc=Coffee+Shops&find_loc=Rockledge"
}

# 添加请求延迟,避免频繁访问
time.sleep(2)

response = requests.get(URL, headers=HEADERS)

if response.status_code == 200:
    soup = BeautifulSoup(response.content, "html.parser")

    # 注意:Yelp的类名会经常变化,需要用浏览器检查工具获取最新的类名
    listings = soup.find_all("div", {"class": "css-1qn0b6x"})

    for listing in listings:
        try:
            # 这里的类名需要你自己用浏览器检查确认是否有效
            name = listing.find("h1", {"class": "y-css-olzveb"}).text
            address = listing.find("p", {"class": "y-css-p0gpmm"}).text
            print(f"名称: {name}, 地址: {address}")
        except AttributeError:
            # 跳过缺少名称或地址的条目
            continue
else:
    print(f"页面获取失败,状态码: {response.status_code}")

额外提示

  • 如果你还是遇到403,可以尝试更换User-Agent(直接复制你当前浏览器的UA,方法是在浏览器地址栏输入about:version查看)
  • 不要短时间内重复请求同一页面,Yelp的反爬机制很严格,多次违规可能会封IP
  • Yelp有官方API,如果长期需要抓取数据,优先考虑使用API,比爬虫更稳定合规

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 22:13:13