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

设置User-Agent与Session后requests仍返回403,越南房产网站爬取失败

解决batdongsan.com.vn 403反爬拦截问题

以下是几种可行的解决方案,针对该网站的反爬机制逐一突破:

1. 补充完整请求头字段

仅设置User-Agent不足以模拟真实浏览器请求,网站可能校验多个头信息。建议添加Accept、Accept-Language等常见字段:

from bs4 import BeautifulSoup
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'vi-VN,vi;q=0.8,en-US;q=0.5,en;q=0.3',
    'Referer': 'https://batdongsan.com.vn/',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

URL = "https://batdongsan.com.vn/ban-can-ho-chung-cu-king-palace"
session = requests.Session()
page = session.get(URL, headers=headers)
print(page.status_code)

2. 使用代理IP轮换

如果网站基于IP频率拦截,可通过代理IP切换请求来源(需使用可靠的代理服务):

from bs4 import BeautifulSoup
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}

# 替换为实际可用的代理地址
proxies = {
    'http': 'http://your-proxy-ip:port',
    'https': 'https://your-proxy-ip:port'
}

URL = "https://batdongsan.com.vn/ban-can-ho-chung-cu-king-palace"
session = requests.Session()
page = session.get(URL, headers=headers, proxies=proxies)
print(page.status_code)

3. 添加随机请求延迟

短时间高频请求会触发反爬,添加随机延迟模拟人类浏览节奏:

from bs4 import BeautifulSoup
import requests
import time
import random

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}

URL = "https://batdongsan.com.vn/ban-can-ho-chung-cu-king-palace"
session = requests.Session()

# 随机延迟2-5秒
time.sleep(random.uniform(2, 5))
page = session.get(URL, headers=headers)
print(page.status_code)

4. 使用自动化浏览器工具

若网站依赖JS渲染或有更严格的反爬逻辑,用Selenium模拟真实浏览器操作:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36')
options.add_argument('--headless=new')  # 无头模式运行

driver = webdriver.Chrome(options=options)
driver.get("https://batdongsan.com.vn/ban-can-ho-chung-cu-king-palace")

print(driver.page_source)  # 获取完整页面内容
driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:24:38