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

使用requests.get爬取olx网站无返回、提取元素为空列表是什么原因?

问题原因及解决方法

核心原因

  • 你已经定义了模拟浏览器身份的headers变量,但调用requests.get()时未传入该参数。站点的反爬策略会识别到requests的默认UA标识python-requests/xxx,直接拦截请求,返回的页面并非正常的职位列表页,自然解析不到ads__item类的div元素。

其他可能原因

  • 请求返回状态码异常:可以先打印r.status_code验证请求结果,若返回403则明确是反爬拦截,若返回404说明请求地址有误,返回5xx为站点服务端异常。
  • 页面数据动态渲染:即使添加请求头后正常返回200状态码,也可能存在列表数据由JS异步加载的情况,静态HTML源码中本身不存在ads__item元素,需要抓异步数据接口请求,或使用Selenium、Playwright等工具模拟浏览器渲染后再解析。
  • 解析依赖未安装:你使用了lxml作为BeautifulSoup的解析器,若未提前安装该库也可能导致解析异常,可执行pip install lxml安装后重试。

修复后的基础代码

import requests
from bs4 import BeautifulSoup

baseurl = "https://www.olx.com.eg/"
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
# 新增headers参数传入
r = requests.get('https://www.olx.com.eg/jobs/', headers=headers)
# 可先打印返回内容确认是否为目标页面
# print(r.text)
soup = BeautifulSoup(r.content, 'lxml')
product_list = soup.findAll('div',class_ = 'ads__item')
print(product_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:42:00