Giúp đỡ sửa lỗi 522 trên module image-downloader

Mình đang viết chương trình tải chương truyện trên nettruyen, mình đã test trên nhiều chương và đã tải thành công nhưng khi tải chương ở dưới thì bị lỗi 522.

const puppeteer = require('puppeteer')
const downloader = require('image-downloader')
const fs = require('fs')
async function GetImagesFromChapterPage(urlChapter, page){
  await page.goto(urlChapter, {waitUntil: 'domcontentloaded'})
  let images = await page.evaluate(() => {
    const elementImages = Array.from(document.querySelectorAll('.reading-detail .page-chapter img'))
    return elementImages.map(chapter => chapter.getAttribute('src'))
  })
  images = images.map(image => image.replace('//', 'https://'))
  return images
}
async function ChapterDownloader(urlChapter, path, page) {
  const images = await GetImagesFromChapterPage(urlChapter, page)
  for (image of images) {
    downloader.image({
      headers: {
        Referer: 'http://www.nettruyentop.com/'
      },
      url: image,
      dest: path
    })
      .catch(err => { 
        console.log(err)
      })
  }
}
async function main(){
  const browser = await puppeteer.launch({ headless: false })
  const page = await browser.newPage()
  await page.setDefaultNavigationTimeout(0)
  if(!fs.existsSync('./result')){
    fs.mkdirSync('./result')
  }
  ChapterDownloader('http://www.nettruyentop.com/truyen-tranh/toi-da-chuyen-sinh-thanh-slime/chap-3/197180', './result', page)
}
main()

Sau đó mình thử tải riêng từng ảnh của chương trên bằng module image-downloader, vẫn tải được bình thường.
Ai có giải pháp gì không?
Có thể giải thích sao bị lỗi này không?

Lỗi 522 là lỗi bên server gốc không phản hồi lại server CloudFlare, thuộc kiểu đôi khi gặp. Đối với dạng lỗi này thì bạn nên thử gửi lại request một lần nữa.

Ngoài ra thì bạn có thể download ảnh mà không cần thư viện ngoài :kissing:

2 Likes

Do dòng này:

images = images.map(image => image.replace('//', 'https://'))

Không phải host nào cũng bật https đâu.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?