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

爬取埃及OLX页面时内容不完整或编码异常问题求助

解决OLX埃及站点爬取内容不完整/编码异常问题

爬取OLX埃及站点时出现内容不完整或编码异常,核心原因有两个:一是请求未模拟浏览器被反爬拦截,返回截断内容;二是requests自动编码识别偏差导致阿拉伯语乱码。直接用以下方案修复:

修复步骤

  • 补全浏览器请求头:OLX会校验请求的用户代理(User-Agent),无合法UA的请求会返回不完整的页面内容。
  • 强制指定UTF-8编码:阿拉伯语内容使用UTF-8编码,手动指定可避免requests自动识别编码错误。

完整修复代码

import requests
from bs4 import BeautifulSoup

# 目标链接
link_scraping = 'https://olx.com.eg/ad/%D8%B4%D9%82%D9%87-%D8%A7%D9%84%D8%A8%D9%8A%D8%B9-%D9%81%D9%8A-%D8%AC%D9%86%D8%A9-%D9%85%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AC%D9%85%D8%B9-%D8%A7%D9%84%D8%AE%D8%A7%D9%85%D8%B3-ID197116204.html'

# 模拟浏览器请求头
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'
}

# 发送请求
page = requests.get(link_scraping, headers=headers, timeout=100)
# 强制指定UTF-8编码
page.encoding = 'utf-8'

# 输出完整内容
print(page.text)

# 若要解析内容,可继续用BeautifulSoup
soup = BeautifulSoup(page.text, 'html.parser')
# 示例:提取页面标题
title = soup.find('h1').get_text(strip=True)
print(f"页面标题:{title}")

说明

  1. 移除了重复导入的requests模块,精简代码结构。
  2. 添加的User-Agent会让服务器判定请求来自真实浏览器,避免返回截断内容。
  3. 手动设置page.encoding = 'utf-8',确保阿拉伯语和英语内容都能正确解码,不会出现编码异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 07:52:30