【问题标题】:Nodejs: I want to scrape the html from nba.com/stats but I don't get the whole html with requestNodejs:我想从 nba.com/stats 抓取 html,但我没有通过请求获得整个 html
【发布时间】:2019-03-26 12:18:21
【问题描述】:

我正在尝试使用 nodejs 抓取 https://stats.nba.com/players/traditional/?sort=NBA_FANTASY_PTS&dir=-1&Season=2018-19&SeasonType=Regular%20Season&LastNGames=3 但我没有得到与网站上显示的相同的 html,我想要表格中的数据,但它仅在您检查网站上的元素时出现,我尝试使用 request+cheerio、jquery、scrape-table 但他们总是抓取源 html。

【问题讨论】:

  • NBA 提供API - 为什么不使用它?抓取他们的网站肯定违反了他们的服务条款。
  • 查看您的浏览器选项卡。数据来自 xhrs
  • @Filburt 他们的 API 真的很差,没有我想要的东西,我说报废,但在我的情况下这个词真的太强了,因为我将使用很少的数据一天一次,就好像我自己去现场一样。

标签: javascript node.js web-scraping request cheerio


【解决方案1】:

是的,这是因为该网站是使用 Angular 构建的。该页面是使用 Javascript 生成的。所有 Request 给你的是基本的 HTML,但它在这里停止。它不会获取脚本,也不会构建 DOM。

您需要一个更强大的工具:像 PhantomJSPuppeteer 这样的无头浏览器。

这些不仅会加载基本 HTML,还会加载脚本,并像真正的浏览器一样执行所有操作。然后,您可以从中提取完全构建的 HTML 页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2017-01-13
    • 2011-02-04
    • 2023-02-14
    • 2020-07-21
    • 2013-09-05
    • 1970-01-01
    相关资源
    最近更新 更多