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

Scrapy爬取日本房产网站时HTML内容与Chrome显示不一致的问题咨询

Scrapy爬取日本房产网站时HTML内容与Chrome显示不一致的问题咨询

我正在做一个Scrapy项目,需要爬取日本的房产网站,目标是自动提取页面上每个房源的数据。房源链接的格式是这样的:https://www.e-uchina.net/bukken/house/h-5461-7210530-0132/detail.html,其中的数字会随着房源不同而变化。

但我遇到了一个问题:Scrapy获取到的HTML内容和Chrome检查元素里显示的不一样,甚至看不到房源的链接。想请教一下:为什么Scrapy拿到的内容会和Chrome里的不一样?是不是因为JavaScript渲染的原因?有没有办法让Scrapy获取到和Chrome完全一致的内容?最好能不用额外安装包就解决。

我的代码片段如下:

import tim...

问题解答

你说得没错,这种情况大概率就是JavaScript动态渲染导致的!

Chrome浏览器会自动执行页面中的JavaScript代码,动态生成页面内容(比如你要找的房源链接);但Scrapy默认只会请求并获取服务器返回的静态初始HTML,不会执行任何JS,所以自然拿不到那些动态加载出来的元素。

下面给你几个解决方案,优先满足你“不用额外包”的需求:

1. 直接抓接口数据(最推荐,无需额外包)

很多网站会通过AJAX接口(XHR/Fetch请求)加载房源数据,而不是直接把内容写在静态HTML里。你可以这样操作:

  • 打开Chrome开发者工具(按F12),切换到「Network」标签页;
  • 刷新目标页面,筛选「XHR」或「Fetch」类型的请求;
  • 逐个查看这些请求的响应内容,找到返回房源列表(包含链接)的接口;
  • 用Scrapy直接请求这个接口,就能拿到结构化的JSON数据,比爬页面高效得多。

2. 模拟浏览器请求头(简单易操作)

有些网站会根据请求头判断访问者是不是真实浏览器,你可以把Scrapy的请求头改成和Chrome完全一致:

  • 在Chrome的「Network」标签里,随便找一个请求,右键选择「Copy → Copy as cURL (bash)」;
  • 把里面的User-Agent、Accept、Referer等字段提取出来,放到Scrapy项目的settings.py中:
DEFAULT_REQUEST_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',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    # 其他字段可以从cURL里复制过来
}

修改后再用Scrapy请求页面,说不定就能拿到完整的动态内容了。

3. 用Scrapy Shell快速调试

你可以用Scrapy的命令行工具快速验证效果:

scrapy shell "https://www.e-uchina.net/house"

在shell里输入response.body查看返回的HTML,或者用response.xpath('//a[contains(@href, "bukken/house")]')试试能不能找到房源链接,方便快速排查问题。

万不得已的方案(需要额外包)

如果上面的方法都不行,那就只能用浏览器渲染工具了。比如scrapy-playwright或scrapy-selenium,它们能让Scrapy调用无头浏览器(比如Chrome Headless)来执行JS,完全模拟Chrome的渲染过程,拿到和浏览器一模一样的内容。不过需要额外安装依赖包,你可以根据自己的需求选择。

备注:内容来源于stack exchange,提问作者sheakz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:54:30