【问题标题】:Webscraping in node.jsnode.js 中的网页抓取
【发布时间】:2021-08-20 09:06:40
【问题描述】:

我遵循了一个简单的在线教程,它使用此代码打开并记录了一个网页:

const axios = require('axios')
const cheerio = require('cheerio')

async function getPriceFeed() {
  try{
    const siteUrl = 'coinmarketcap.com'
    const data = await axios({
      method: 'GET',
      url: siteUrl,
    })
    console.log(data)
  } catch (err) {
    console.error(err)
  }
}

getPriceFeed()

代码很简单,但是在我的控制台日志中我得到了这个:

Error: connect ECONNREFUSED 127.0.0.1:80
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 80,
  config: {
    url: 'coinmarketcap.com',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'axios/0.21.1'
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',

等等等等

我在看什么?为什么它不返回一个长的 html 字符串?

【问题讨论】:

  • 你的网址看起来不对,你想写这个吗? coinmarketcap.com
  • 我会试试的!测试...不,它仍然在控制台中显示相同的内容
  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask
  • 我也尝试了其他方法,包括 puppeteer 和 fetch,但结果好坏参半。在少数情况下,我能够获取 html 字符串,但它始终遵循我在图片中发布的内容,并且仅适用于少数网站,大多数网站都有我上面描述的问题。
  • 好的,我会编辑 q

标签: node.js web-scraping


【解决方案1】:

您的 URL 错误:应该是 https://coinmarketcap.com/ 而不是 http://www.https://coinmarketcap.com/

const axios = require('axios')
const cheerio = require('cheerio')

async function getPriceFeed() {
try{
    const siteUrl = 'https://coinmarketcap.com/'
    const data = await axios({
    method: 'GET',
    url: siteUrl,
    })
    console.log(data)
} catch (err) {
    console.error(err)
}
}

getPriceFeed()

【讨论】:

  • 这很公平,我已经编辑了问题以使用应该有效的网址。但是,问题仍然存在。我正在编写代码并运行 repl.it,您认为这是问题所在吗?
  • 它也应该适用于 repli。一定还有别的问题。检查此回复replit.com/join/dgxgbprfhj-ridhamtarpara
  • 谢谢!这太奇怪了,也许我的其他依赖项有问题?我将它作为不和谐机器人的一部分运行,所以也许 discord.js 有问题?
  • 是的,可以。查看错误看起来像是网络或代理问题@MachDiscord
  • 好的,这样就成功了。现在来看看代码的哪一部分不同...非常感谢您的帮助!
猜你喜欢
  • 2017-08-13
  • 2017-06-23
  • 2011-07-09
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
相关资源
最近更新 更多