Baidu 클라우드 공유 크롤러 프로젝트
github에는 이러한 오픈 소스 프로젝트가 여러 개 있지만 크롤러 부분만 제공합니다. 이 프로젝트에는 크롤러를 기반으로 데이터를 저장하고 Elasticsearch 인덱스를 설정하는 모듈도 추가되지만 웹 모듈은 여전히 있습니다. 필요합니다. 직접 개발하세요.
설치하다
node.js 및 pm2를 설치하면 node는 크롤러 및 인덱싱 프로그램을 실행하는 데 사용되고 pm2는 노드 작업을 관리하는 데 사용됩니다.
mysql과 mongodb를 설치합니다. Mysql은 크롤러 데이터를 저장하는 데 사용되고, mongodb는 최종 Baidu Cloud 공유 데이터를 저장하는 데 사용됩니다. 이러한 데이터는 json 형식이므로 mongodb로 저장하는 것이 더 편리합니다.
gitclonehttps://github.com/callmelanmao/yunshare
cnpmi
가장 간단한 설치 방법인 npm 종속성을 설치하려면 cnpm 명령을 사용하는 것이 좋습니다.
$npminstall-gcnpm--registry=https://registry.npm.taobao.org
cnpm 설치에 대한 추가 명령은 npm.taobao.org에서 찾을 수 있습니다.
초기화
크롤러 데이터(주로 URL 목록)는 mysql 데이터베이스에 저장됩니다. Yunshare는 ORM 매핑을 위해 Sequelizejs를 사용합니다. 소스 파일은 src/models/index.js에 있습니다. 데이터는 모두 루트입니다. yun 데이터베이스를 수동으로 생성해야 합니다.
생성된데이터베이스undefaultcharsetutf8
필요에 따라 비밀번호를 변경하십시오. mysql 구성을 완료한 후 다음 명령을 실행할 수 있습니다.
꿀꺽꿀꺽
nodedist/script/init.js
먼저 gulpbabel을 실행하여 es6 코드를 es5로 컴파일한 다음 초기화 스크립트를 실행하여 초기 데이터를 가져와야 합니다. 데이터 파일은 http://yun.baidu 페이지에 있는 data/hot.json에 있습니다. .com/pcloud/friend/gethotuserlist? type=1&from=feed&start=0&limit=24&bdstoken=ac95ef31d3979f6ee707ef75cee9f5c5&clienttype=0&web=1 저장되었습니다.
프로젝트 시작
Yunshare는 nodejs 프로세스 관리를 위해 pm2startprocess.json을 실행하여 모든 백그라운드 작업을 시작합니다. 작업이 정상적으로 실행되는지 확인하려면 pm2list 명령을 사용하면 됩니다.
Elasticsearch 인덱스 시작
Elasticsearch 인덱스 프로그램도 작성되었습니다. 매핑 파일은 data/mapping.json에 있습니다. 인덱스 프로그램(pm2startdist/elastic.js)을 실행하기 전에 elasticsearch5.0 버전을 설치했는지 확인하세요.
기본 elasticsearch 주소는 http://localhost:9200입니다. 이 주소를 수정해야 하는 경우 src/ElasticWorker.js에서 수정할 수 있습니다. js 소스 코드를 수정한 후 gulpbabel을 실행하고 pm2 작업을 다시 시작하세요. 수정 사항은 적용되지 않습니다.
Elasticsearch 구성을 완료한 후 process.json에 Elastic 작업을 추가할 수도 있으므로 별도로 인덱싱 프로그램을 시작할 필요가 없습니다.
관련 문서
간단하고 효율적인 nodejs 크롤러 모델
데모