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

使用BeautifulSoup爬取Craigslist失败,此前正常现遇浏览器验证提示

问题解决与合规说明

一、爬取失败的原因及修复方案

你遇到的是Craigslist的反爬机制触发了,返回的是浏览器兼容性提示,本质是你的请求没有模拟真实浏览器的特征,被识别为非人类访问。

修复步骤:

  • 添加请求头(User-Agent):默认requests的请求头会暴露是爬虫,需要模拟现代浏览器的UA。修改你的请求代码:
from requests import get
from bs4 import BeautifulSoup
import time

url = 'https://sandiego.craigslist.org/search/apa?hasPic=1&availabilityMode=0&sale_date=all+dates'
# 模拟现代浏览器的请求头,可根据自己的浏览器实际UA替换
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'
}
response = get(url, headers=headers)
# 添加延迟,避免频繁请求触发限制
time.sleep(2)

html_soup = BeautifulSoup(response.text, 'html.parser')
posts = html_soup.find_all('li', class_="result-row")
print(type(posts))
print(len(posts))
  • 控制请求频率:不要短时间内重复发起请求,手动添加延迟(比如time.sleep(2)),降低被封禁的概率。
  • 临时切换IP:如果添加UA后仍无效,可能是你的IP已被临时限制,可切换网络(如手机热点),无需付费代理即可恢复访问。

二、爬取Craigslist的合规性说明

Craigslist的服务条款明确禁止大规模自动化爬取、批量获取数据,除非获得官方书面授权。但非商业目的、低频率的个人用途爬取,通常不会被追责,需遵守以下原则:

  • 仅获取个人所需的少量内容,不要批量爬取全站数据
  • 不要干扰网站正常运营,严格控制请求频率
  • 不得将爬取的数据用于商业用途或公开传播

如果需要持续、大规模获取数据,目前Craigslist没有公开API,建议联系官方申请授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:31:02