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

使用jQuery抓取网站是否需目标站点引入?Gumtree爬取报错求助

解答你的两个jQuery爬虫问题

问题1:使用jQuery抓取网站时,目标网站是否需要引入jQuery?

答案是不需要——完全不用依赖目标网站本身加载jQuery。我们在爬虫脚本里可以主动把jQuery注入到目标页面的执行环境中,不管原网站有没有引入它。毕竟咱们是在控制浏览器/无头浏览器环境,有能力自行添加需要的资源。

问题2:Nightmare.js中遇到$ is not defined的报错,是否需要目标网站引入jQuery?

这个报错的核心原因是当前页面环境里没有jQuery,跟目标网站本身加不加没关系。你需要在自己的Nightmare脚本里手动注入jQuery,步骤大概是这样:

  1. 先用goto方法打开目标页面
  2. 调用inject方法把jQuery脚本注入到页面里
  3. 之后再在evaluate里使用$来操作DOM

举个简单的示例代码:

const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });

nightmare
  .goto('https://www.gumtree.com.au/')
  .inject('script', 'http://code.jquery.com/jquery-1.7.1.min.js') // 注入jQuery到页面环境
  .evaluate(() => {
    // 现在可以正常用$来操作DOM了
    return $('.ad-listing').map((i, el) => $(el).find('.title').text()).get();
  })
  .end()
  .then(result => console.log('抓取到的广告标题:', result))
  .catch(error => console.error('抓取出错:', error));

这里的inject方法会把指定的jQuery脚本加载到当前页面的执行环境里,之后evaluate中的代码就能识别$变量了,完全不需要依赖目标网站自行引入jQuery。

内容的提问来源于stack exchange,提问作者Aidan el Goste

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:22:29