【问题标题】:shorten axios text/html response缩短 axios 文本/html 响应
【发布时间】:2021-04-30 16:29:10
【问题描述】:

我正在向网页发送一个 Axios 请求,以从网页上刮下一小段字符串,但返回的响应是一个很大的 html,我只需要它的一小部分,有没有办法以某种方式缩短响应这样我就可以保存数据并使请求更快?

const longHtml = await axios.get('https://example.com');
const shortHtml = longHtml.data //get short data here

【问题讨论】:

  • a little string off of it 是什么意思?
  • 我的意思是,我想在该网页中获取一个元素的“innerText”

标签: javascript node.js web-scraping axios screen-scraping


【解决方案1】:

网页抓取是一种用于从网站检索数据的技术。您获取页面的内容,然后从页面中提取您需要的数据。

这里是使用 axios 和 cheerio 的示例

const axios = require("axios")
const cheerio = require("cheerio")

async function fetchHTML(url) {
  const { data } = await axios.get(url)
  return cheerio.load(data)
}
const $ = await fetchHTML("https://example.com")

// Print the full HTML
console.log(`Site HTML: ${$.html()}\n\n`)

// Print some specific page content
console.log(`First h1 tag: ${$('h1').text()}`)

【讨论】:

  • 谢谢你,答案有帮助,但我想知道是否可以获取一小部分 html,所以我提出请求的速度更快,但我的回复是假设这是不可能的,但这很好。
【解决方案2】:

如果我了解您要做什么,当您找到所需数据时,您不会停止请求,您可以使用 htmlparser2 并从 axios 提供一个流,然后注册侦听器,当您获得您需要的元素可以结束流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2020-10-09
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多