为何无法抓取mobile.de车辆列表链接?返回空列表问题
解决mobile.de车辆链接爬取返回空列表的问题
问题原因
- 反爬拦截:直接用
requests.get发起请求会被网站识别为非浏览器访问,返回的页面不含目标车辆列表内容。 - 选择器失效:你使用的class选择器可能已被网站更新,无法匹配到目标元素。
修复方案
1. 添加请求头模拟浏览器访问
给请求添加User-Agent头,让请求更接近正常浏览器行为:
from bs4 import BeautifulSoup import requests url = 'https://suchen.mobile.de/fahrzeuge/search.html?dam=0&isSearchRequest=true&ref=quickSearch&sb=rel&vc=Car' # 模拟Chrome浏览器请求头,可根据自己浏览器版本调整 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 = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') # 更新选择器为当前页面有效匹配规则 links = [] for a in soup.find_all('a', class_='cBox-body cBox-body--resultitem'): href = a.get('href') if href: links.append(href) print(links)
2. 验证选择器有效性
- 打开目标页面,右键选择「检查」查看车辆链接元素的实际属性,确认class或其他定位规则是否正确。
- 如果页面是滚动加载动态内容,可能需要使用
selenium等工具处理JS渲染的内容。
注意事项
- 控制请求频率,避免频繁请求触发网站反爬机制导致IP被封禁。
- 网站页面结构可能随时更新,需定期检查选择器是否仍有效。
内容的提问来源于stack exchange,提问作者Zqm
相关产品推荐
相关产品推荐

