목차
소개
프로젝트 시작
기술 포인트
비디오 파일 다운로드 방법
웹 프론트엔드 JS 튜토리얼 노드가 헤드라인 동영상을 일괄 크롤링하고 저장하는 방법(코드 구현)

노드가 헤드라인 동영상을 일괄 크롤링하고 저장하는 방법(코드 구현)

Sep 19, 2018 pm 05:02 PM
node.js 다운로드 웹 크롤러 동영상

이 기사의 내용은 Node가 헤드라인 동영상의 일괄 크롤링 및 저장(코드 구현)을 구현하는 방법에 대한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

소개

동영상이나 사진을 일괄 크롤링하는 일반적인 방법은 크롤러를 사용하여 파일 링크 모음을 얻은 다음 writeFile과 같은 방법을 통해 파일을 하나씩 저장하는 것입니다. 그러나 크롤링해야 하는 html 파일(서버 측 렌더링 출력)에는 Toutiao의 비디오 링크를 캡처할 수 없습니다. 비디오 링크는 페이지가 클라이언트 측에서 렌더링될 때 특정 js 파일의 알고리즘이나 암호 해독 방법을 통해 비디오의 알려진 키 또는 해시 값을 기반으로 동적으로 계산되어 비디오 태그에 추가됩니다. 이는 웹사이트에 대한 크롤링 방지 조치이기도 합니다.

이 페이지를 탐색하면 감사 요소를 통해 계산된 파일 주소를 볼 수 있습니다. 그러나 일괄적으로 다운로드할 때 비디오 링크를 하나씩 수동으로 얻는 것은 분명히 바람직하지 않습니다. 다행스럽게도 puppeteer는 Chrome에 대한 액세스를 시뮬레이션하는 기능을 제공하여 브라우저에서 렌더링된 최종 페이지를 크롤링할 수 있습니다.

프로젝트 시작

Command
npm i
npm start
로그인 후 복사

주의사항: Puppeteer 설치 과정이 조금 느리니 인내심을 가지고 기다려주세요.

구성 파일
// 配置相关
module.exports =  {
  originPath: 'https://www.ixigua.com', // 页面请求地址
  savePath: 'D:/videoZZ' // 存放路径
}
로그인 후 복사

기술 포인트

puppeteer

공식 API

puppeteer는 Chrome 또는 Chromium을 제어할 수 있는 고급 API를 제공합니다.

puppeteer 주요 기능:

  • 웹 페이지를 사용하여 PDF 및 그림 생성

  • SPA 애플리케이션을 크롤링하고 사전 렌더링된 콘텐츠(예: "SSR" 서버측 렌더링) 생성

  • 웹사이트에서 콘텐츠를 가져올 수 있습니다.

  • 자동 양식 제출, UI 테스트, 키보드 입력 등

사용된 API:

  • puppeteer.launch() 브라우저 인스턴스 시작

  • browser.newPage() 새 페이지 만들기

  • page.goto() 지정된 웹페이지 입력

  • page.screenshot() 스크린샷

  • page.waitFor() 시간, 요소 또는 함수일 수 있는 페이지를 기다립니다.

  • page.$ eval() document.querySelector

  • page.$$eval() document.querySelectorAll

  • page.$('#에 해당하는 특정 유형의 요소를 가져옵니다. id .className') 문서의 요소 가져오기, 작업은 jQuery

코드 샘플

const puppeteer = require('puppeteer');
 
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});
 
  await browser.close();
})();
로그인 후 복사

비디오 파일 다운로드 방법

  • 비디오 기본 방법 다운로드

const downloadVideo = async video => {
  // 判断视频文件是否已经下载
  if (!fs.existsSync(`${config.savePath}/${video.title}.mp4`)) {
    await getVideoData(video.src, 'binary').then(fileData => {
      console.log('下载视频中:', video.title)
      savefileToPath(video.title, fileData).then(res =>
        console.log(`${res}: ${video.title}`)
      )
    })
  } else {
    console.log(`视频文件已存在:${video.title}`)
  }
}
로그인 후 복사
  • 비디오 데이터 가져오기

getVideoData (url, encoding) {
  return new Promise((resolve, reject) => {
    let req = http.get(url, function (res) {
      let result = ''
      encoding && res.setEncoding(encoding)
      res.on('data', function (d) {
        result += d
      })
      res.on('end', function () {
        resolve(result)
      })
      res.on('error', function (e) {
        reject(e)
      })
    })
    req.end()
  })
}
로그인 후 복사
  • will video 데이터는 로컬

savefileToPath (fileName, fileData) {
  let fileFullName = `${config.savePath}/${fileName}.mp4`
  return new Promise((resolve, reject) => {
    fs.writeFile(fileFullName, fileData, 'binary', function (err) {
      if (err) {
        console.log('savefileToPath error:', err)
      }
      resolve('已下载')
    })
  })
}
로그인 후 복사
에 저장됩니다. 대상 웹사이트: Xigua Video
프로젝트 기능: 헤드라인 계정 [Weichen Finance]에서 최신 20개의 비디오를 다운로드합니다.
프로젝트 주소: Github 주소

위 내용은 노드가 헤드라인 동영상을 일괄 크롤링하고 저장하는 방법(코드 구현)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

wallpaperengine에서 다른 계정으로 로그인한 후 다른 사람의 배경화면을 다운로드하면 어떻게 해야 하나요? wallpaperengine에서 다른 계정으로 로그인한 후 다른 사람의 배경화면을 다운로드하면 어떻게 해야 하나요? Mar 19, 2024 pm 02:00 PM

귀하의 컴퓨터에서 다른 사람의 Steam 계정에 로그인하고 그 다른 사람의 계정에 우연히 배경화면 소프트웨어가 있는 경우, Steam은 자신의 계정으로 다시 전환한 후 다른 사람의 계정에 구독된 배경화면을 자동으로 다운로드합니다. 스팀 클라우드 동기화를 끄세요. 다른 계정에 로그인한 후 wallpaperengine이 다른 사람의 배경화면을 다운로드하는 경우 해결 방법 1. 자신의 Steam 계정에 로그인하고 설정에서 클라우드 동기화를 찾아 Steam Cloud 동기화를 끄세요. 2. 이전에 로그인했던 다른 사람의 Steam 계정으로 로그인하여 Wallpaper Creative Workshop을 열고 구독 콘텐츠를 찾은 다음 모든 구독을 취소하세요. (나중에 배경화면을 찾을 수 없는 경우 먼저 수집한 후 구독을 취소할 수 있습니다.) 3. 자신의 스팀으로 다시 전환합니다.

115://로 시작하는 링크를 다운로드하는 방법은 무엇입니까? 다운로드 방법 소개 115://로 시작하는 링크를 다운로드하는 방법은 무엇입니까? 다운로드 방법 소개 Mar 14, 2024 am 11:58 AM

최근 많은 사용자들이 편집자에게 115://로 시작하는 링크를 다운로드하는 방법을 문의해 왔습니다. 115://로 시작하는 링크를 다운로드하려면 115 브라우저를 사용해야 합니다. 115 브라우저를 다운로드한 후 아래 편집기에서 편집한 다운로드 튜토리얼을 살펴보겠습니다. 115://로 시작하는 링크를 다운로드하는 방법을 소개합니다. 1. 115.com에 로그인하고 115 브라우저를 다운로드하여 설치합니다. 2. 115 브라우저 주소 표시줄에 chrome://extensions/를 입력하고 확장 센터에 들어가서 Tampermonkey를 검색한 후 해당 플러그인을 설치합니다. 3. 115 브라우저 주소창에 Grease Monkey 스크립트: https://greasyfork.org/en/를 입력하세요.

Douyin에 다른 사람의 동영상을 게시하는 것이 침해인가요? 침해 없이 동영상을 편집하려면 어떻게 해야 하나요? Douyin에 다른 사람의 동영상을 게시하는 것이 침해인가요? 침해 없이 동영상을 편집하려면 어떻게 해야 하나요? Mar 21, 2024 pm 05:57 PM

단편 동영상 플랫폼의 등장으로 Douyin은 모든 사람의 일상생활에 없어서는 안 될 부분이 되었습니다. TikTok에서는 전 세계의 흥미로운 동영상을 볼 수 있습니다. 어떤 사람들은 다른 사람의 동영상을 게시하는 것을 좋아하는데, 이는 다음과 같은 질문을 제기합니다. Douyin이 다른 사람의 동영상을 게시하면 저작권을 침해합니까? 이 글에서는 이 문제에 대해 논의하고 침해 없이 동영상을 편집하는 방법과 침해 문제를 방지하는 방법을 알려드립니다. 1. Douyin이 타인의 영상을 게시하는 것에 대한 침해인가요? 우리나라 저작권법 조항에 따르면, 저작권 소유자의 허락 없이 저작권 소유자의 저작물을 무단으로 사용하는 것은 침해입니다. 따라서 원저작자나 저작권 소유자의 허락 없이 Douyin에 다른 사람의 동영상을 게시하는 것은 침해입니다. 2. 침해 없이 동영상을 편집하는 방법은 무엇입니까? 1. 공개 도메인 또는 라이센스 콘텐츠의 사용: 공개

슈퍼피플 게임 다운로드 및 설치 방법 소개 슈퍼피플 게임 다운로드 및 설치 방법 소개 Mar 30, 2024 pm 04:01 PM

슈퍼피플 게임은 Steam 클라이언트를 통해 다운로드할 수 있습니다. 이 게임의 크기는 일반적으로 다운로드 및 설치에 1시간 30분 정도 걸립니다. 새로운 글로벌 비공개 테스트 신청 방법 1) 스팀 스토어에서 'SUPERPEOPLE' 검색(스팀 클라이언트 다운로드) 2) 'SUPERPEOPLE' 스토어 페이지 하단의 'SUPERPEOPLE 비공개 테스트 접근 권한 요청' 클릭 3) 접근 요청 버튼, "SUPERPEOPLECBT" 게임은 스팀 라이브러리에서 확인하실 수 있습니다. 4) "SUPERPEOPLECBT"에서 설치 버튼을 클릭하신 후 다운로드 받으세요.

Quark 네트워크 디스크를 로컬에 다운로드하는 방법은 무엇입니까? Quark Network Disk에서 다운로드한 파일을 로컬 컴퓨터에 다시 저장하는 방법 Quark 네트워크 디스크를 로컬에 다운로드하는 방법은 무엇입니까? Quark Network Disk에서 다운로드한 파일을 로컬 컴퓨터에 다시 저장하는 방법 Mar 13, 2024 pm 08:31 PM

많은 사용자가 Quark Network Disk를 사용할 때 파일을 다운로드해야 하는데 우리는 이를 로컬에 저장하고 싶은데 어떻게 설정해야 합니까? 이 사이트에서는 Quark Network Disk에서 다운로드한 파일을 로컬 컴퓨터에 다시 저장하는 방법을 사용자에게 자세히 소개합니다. Quark 네트워크 디스크에서 다운로드한 파일을 로컬 컴퓨터에 다시 저장하는 방법 1. Quark를 열고 계정에 로그인한 다음 목록 아이콘을 클릭합니다. 2. 아이콘을 클릭한 후 네트워크 디스크를 선택하세요. 3. Quark Network Disk를 입력한 후 내 파일을 클릭합니다. 4. 내 파일 입력 후, 다운로드할 파일을 선택하고 점 3개 아이콘을 클릭하세요. 5. 다운로드하려는 파일을 확인하고 다운로드를 클릭하세요.

foobar2000을 어떻게 다운로드하나요? - foobar2000 사용법 foobar2000을 어떻게 다운로드하나요? - foobar2000 사용법 Mar 18, 2024 am 10:58 AM

foobar2000은 언제든지 음악 리소스를 들을 수 있는 소프트웨어입니다. 모든 종류의 음악을 무손실 음질로 제공합니다. 음악 플레이어의 향상된 버전을 사용하면 더욱 포괄적이고 편안한 음악 경험을 얻을 수 있습니다. 컴퓨터에서 고급 오디오를 재생합니다. 이 장치는 보다 편리하고 효율적인 음악 재생 경험을 제공합니다. 인터페이스 디자인은 단순하고 명확하며 사용하기 쉽습니다. 또한 다양한 스킨과 테마를 지원하고, 자신의 선호도에 따라 설정을 개인화하며, 다양한 오디오 형식의 재생을 지원하는 전용 음악 플레이어를 생성합니다. 또한 볼륨을 조정하는 오디오 게인 기능도 지원합니다. 과도한 볼륨으로 인한 청력 손상을 방지하려면 자신의 청력 상태에 따라 조정하십시오. 다음엔 내가 도와줄게

Douyin에 동영상을 게시하여 수익을 창출하는 방법은 무엇입니까? 초보자가 Douyin으로 어떻게 돈을 벌 수 있나요? Douyin에 동영상을 게시하여 수익을 창출하는 방법은 무엇입니까? 초보자가 Douyin으로 어떻게 돈을 벌 수 있나요? Mar 21, 2024 pm 08:17 PM

국민 단편 영상 플랫폼인 Douyin은 우리가 여가 시간에 재미있고 참신한 다양한 단편 영상을 즐길 수 있게 해줄 뿐만 아니라, 우리 자신을 보여주고 우리의 가치를 실현할 수 있는 무대를 제공합니다. 그렇다면 Douyin에 동영상을 게시하여 돈을 버는 방법은 무엇입니까? 이 글은 이 질문에 대해 자세히 답변하고 TikTok에서 더 많은 수익을 창출하는 데 도움이 될 것입니다. 1. Douyin에 동영상을 게시하여 수익을 창출하는 방법은 무엇입니까? 동영상을 게시하고 Douyin에서 일정 조회수를 얻은 후 광고 공유 계획에 참여할 수 있는 기회를 얻게 됩니다. 이 수입 방식은 Douyin 사용자들에게 가장 친숙한 방법 중 하나이며, 많은 창작자들의 주요 수입원이기도 합니다. Douyin은 계정 가중치, 영상 콘텐츠, 시청자 피드백 등 다양한 요소를 바탕으로 광고 공유 기회 제공 여부를 결정합니다. TikTok 플랫폼을 통해 시청자는 선물을 보내 좋아하는 크리에이터를 지원할 수 있습니다.

Xiaohongshu 비디오 작품을 출판하는 방법은 무엇입니까? 영상을 올릴 때 주의할 점은 무엇인가요? Xiaohongshu 비디오 작품을 출판하는 방법은 무엇입니까? 영상을 올릴 때 주의할 점은 무엇인가요? Mar 23, 2024 pm 08:50 PM

단편 동영상 플랫폼의 등장으로 Xiaohongshu는 많은 사람들이 자신의 삶을 공유하고 자신을 표현하며 트래픽을 얻는 플랫폼이 되었습니다. 이 플랫폼에서는 비디오 작품을 출판하는 것이 매우 인기 있는 상호 작용 방식입니다. 그렇다면 Xiaohongshu 비디오 작품을 출판하는 방법은 무엇입니까? 1. 샤오홍슈 영상 작품은 어떻게 출판하나요? 먼저, 공유할 비디오 콘텐츠가 준비되어 있는지 확인하세요. 휴대폰이나 기타 카메라 장비를 사용해 촬영할 수 있지만 화질과 사운드 선명도에 주의해야 합니다. 2. 영상 편집 : 작품을 더욱 돋보이게 하기 위해 영상을 편집할 수 있습니다. Douyin, Kuaishou 등과 같은 전문 비디오 편집 소프트웨어를 사용하여 필터, 음악, 자막 및 기타 요소를 추가할 수 있습니다. 3. 표지를 선택하세요. 표지는 사용자의 클릭을 유도하는 핵심 요소입니다. 사용자의 클릭을 유도할 수 있는 명확하고 흥미로운 그림을 표지로 선택하세요.

See all articles