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

使用requests_html爬取网站无法获取英文内容的问题求助

解决方法

首先,该网站的语言切换不依赖Accept-Language请求头,而是通过Cookie记录用户语言偏好,同时你的代码存在两个关键问题:一是创建了HTMLSession却未用来发起请求,二是通过行号提取内容的方式完全依赖页面固定结构,极易失效。

正确实现步骤

  • 获取英文语言Cookie:手动打开目标网站切换到英文界面,打开浏览器开发者工具(F12),在「网络」选项卡中复制包含locale=en的Cookie字符串(可一并复制其他必要Cookie,确保请求有效性)。
  • 用HTMLSession发起请求:利用requests_html的会话管理保持Cookie,同时支持JS动态渲染(若页面内容为JS加载)。
  • 用CSS选择器提取内容:通过页面元素的选择器精准获取标题,避免依赖固定行号。

修改后的代码

from requests_html import HTMLSession

url = 'https://pcpalace.com.sa/products/ASUS-Vivobook-GO-E1504GA'

# 替换为你从浏览器复制的包含locale=en的完整Cookie内容
headers = {
    "Cookie": "locale=en; 此处补充其他复制到的Cookie字段",
    "Accept-Language": "en-US,en;q=0.9"
}

session = HTMLSession()
# 发起请求
r = session.get(url, headers=headers)
# 若页面内容为JS动态渲染,调用render()等待加载完成
r.html.render(timeout=10)

# 通过CSS选择器提取产品标题(可根据实际页面结构调整选择器)
product_title = r.html.find('h1.product-title', first=True).text
print(f"产品标题:{product_title}")

额外说明

  • 若不想手动复制Cookie,可先发送POST请求到网站语言切换接口(通常为https://pcpalace.com.sa/locale),提交locale=en参数,会话会自动保存语言偏好Cookie,之后再请求目标页面即可。
  • 使用浏览器开发者工具的「选择元素」功能,可精准定位目标元素的CSS选择器,彻底避免硬编码行号的不稳定问题。

内容的提问来源于stack exchange,提问作者Kernel Technology

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:17:26