인간을위한 node.js 스크레이퍼.
다음과 같이 후원합니다.
Capsolver.com은 다양한 유형의 보안 문자를 자동으로 해결하는 전문 AI- 발전 서비스입니다. Recaptcha v2, recaptcha v3, hcaptcha, funcaptcha, datadome, aws captcha, geetest 및 cloudflare captcha / 챌린지 5S, 불완전한 / incapsula와 같은 보안 문자를 지원합니다. 개발자의 경우 Capsolver는 문서에 자세히 설명 된 API 통합 옵션을 제공하여 Captcha 해결을 응용 프로그램에 통합하는 것을 용이하게합니다. 또한 Chrome 및 Firefox 용 브라우저 확장 기능을 제공하므로 브라우저 내에서 직접 서비스를 쉽게 사용할 수 있습니다. 다양한 요구를 수용하기 위해 다양한 가격 패키지를 이용할 수있어 사용자에게 유연성을 보장합니다.
# Using npm
npm install --save scrape-it
# Using yarn
yarn add scrape-it CRIPIP : npm install --global scrape-it-cli (또는 yarn global add scrape-it-cli )를 실행 하여이 모듈의 CLI 버전을 설치할 수 있습니다.
다음은 몇 가지 빈번한 질문과 답변입니다.
scrape-it 요청을위한 간단한 요청 모듈 만 있습니다. 즉, Ajax 페이지를 직접 구문 분석 할 수는 없지만 일반적으로 해당 시나리오가 있습니다.
example.com/api/that-endpoint that-endpoint) scrape-it 전달하면 응답을 구문 분석 할 수 있습니다..scrapeHTML 메소드를 사용하십시오. scrape-it 로 페이지를 기어 다니는 멋진 방법은 없습니다. 간단한 시나리오의 경우 초기 페이지에서 URL 목록을 구문 분석 한 다음 약속을 사용하여 각 페이지를 구문 분석 할 수 있습니다. 또한 다른 크롤러를 사용하여 웹 사이트를 다운로드 한 다음 .scrapeHTML 메소드를 사용하여 로컬 파일을 긁어냅니다.
.scrapeHTML 사용하여 fs.readFile 사용하여 로컬 파일에서 읽은 HTML을 구문 분석하십시오.
const scrapeIt = require ( "scrape-it" )
// Promise interface
scrapeIt ( "https://ionicabizau.net" , {
title : ".header h1"
, desc : ".header h2"
, avatar : {
selector : ".header img"
, attr : "src"
}
} ) . then ( ( { data , status } ) => {
console . log ( `Status Code: ${ status } ` )
console . log ( data )
} ) ;
// Async-Await
( async ( ) => {
const { data } = await scrapeIt ( "https://ionicabizau.net" , {
// Fetch the articles
articles : {
listItem : ".article"
, data : {
// Get the article date and convert it into a Date object
createdAt : {
selector : ".date"
, convert : x => new Date ( x )
}
// Get the title
, title : "a.article-title"
// Nested list
, tags : {
listItem : ".tags > span"
}
// Get the content
, content : {
selector : ".article-content"
, how : "html"
}
// Get attribute value of root listItem by omitting the selector
, classes : {
attr : "class"
}
}
}
// Fetch the blog pages
, pages : {
listItem : "li.page"
, name : "pages"
, data : {
title : "a"
, url : {
selector : "a"
, attr : "href"
}
}
}
// Fetch some other data from the page
, title : ".header h1"
, desc : ".header h2"
, avatar : {
selector : ".header img"
, attr : "src"
}
} )
console . log ( data )
// { articles:
// [ { createdAt: Mon Mar 14 2016 00:00:00 GMT+0200 (EET),
// title: 'Pi Day, Raspberry Pi and Command Line',
// tags: [Object],
// content: '<p>Everyone knows (or should know)...a" alt=""></p>n',
// classes: [Object] },
// { createdAt: Thu Feb 18 2016 00:00:00 GMT+0200 (EET),
// title: 'How I ported Memory Blocks to modern web',
// tags: [Object],
// content: '<p>Playing computer games is a lot of fun. ...',
// classes: [Object] },
// { createdAt: Mon Nov 02 2015 00:00:00 GMT+0200 (EET),
// title: 'How to convert JSON to Markdown using json2md',
// tags: [Object],
// content: '<p>I love and ...',
// classes: [Object] } ],
// pages:
// [ { title: 'Blog', url: '/' },
// { title: 'About', url: '/about' },
// { title: 'FAQ', url: '/faq' },
// { title: 'Training', url: '/training' },
// { title: 'Contact', url: '/contact' } ],
// title: 'Ionică Bizău',
// desc: 'Web Developer, Linux geek and Musician',
// avatar: '/images/logo.png' }
} ) ( ) 도움을받는 방법에는 몇 가지가 있습니다.
scrapeIt(url, opts, cb)인간을위한 스크래핑 모듈.
url : 페이지 URL 또는 요청 옵션.opts : scrapeHTML 메소드로 전달 된 옵션.cb : 콜백 함수. data (객체) 긁힌 데이터.$ (기능) : Cheeerio 함수. 필요한 경우 DOM에서 다른 조작을하는 것이 편리 할 수 있습니다.response (객체) : 응답 객체.body (문자열) : 끈으로 생체.scrapeIt.scrapeHTML($, opts)제공된 요소에서 데이터를 긁습니다.
선택기 형식은 Cheerio 라이브러리의 선택기 섹션을 참조하십시오.
Cheerio $ : 입력 요소.
객체 opts : 스크래핑 정보가 포함 된 객체. 목록을 긁어려면 listItem 선택기를 사용해야합니다.
listItem (String) : 목록 항목 선택기.data (객체) : 목록 개체에 포함 할 필드 :<fieldName> (Object | String) : 선택기 또는 포함 된 개체 :selector (문자열) : 선택기.convert (기능) : 값을 변경할 수있는 선택적 함수.how (함수 | 문자열) : 값에 액세스하기위한 함수 또는 함수 이름.attr (string) : 제공된 경우 값은 속성 이름을 기준으로 수행됩니다.trim (boolean) : false 인 경우 값이 다듬어지지 않습니다 (기본값 : true ).closest (문자열) : 제공된 경우 주어진 요소의 첫 번째 조상을 반환합니다.eq (번호) : 제공된 경우 NTH 요소를 선택합니다.texteq (번호) : 제공된 경우 Nth Direct Text Child를 선택합니다. 깊은 텍스트 자식 선택은 아직 불가능합니다. how Key를 덮어 씁니다.listItem (Object) : 객체, listItem 객체의 재귀 스키마를 유지합니다. 이것은 중첩 된 목록을 만드는 데 사용할 수 있습니다.예 :
{
articles : {
listItem : ".article"
, data : {
createdAt : {
selector : ".date"
, convert : x => new Date ( x )
}
, title : "a.article-title"
, tags : {
listItem : ".tags > span"
}
, content : {
selector : ".article-content"
, how : "html"
}
, traverseOtherNode : {
selector : ".upperNode"
, closest : "div"
, convert : x => x . length
}
}
}
} 페이지에서 특정 데이터를 수집하려면 data 필드에 사용 된 것과 동일한 스키마를 사용하십시오.
예 :
{
title : ".header h1"
, desc : ".header h2"
, avatar : {
selector : ".header img"
, attr : "src"
}
} 아이디어가 있습니까? 버그를 찾았습니까? 기여하는 방법을보십시오.
나는 내가 할 수있는 거의 모든 것을 오픈 소스이며,이 프로젝트를 사용하는 데 도움이 필요한 모든 사람들에게 대답하려고 노력합니다. 분명히, 이것은 시간이 걸립니다. 응용 프로그램에서 이러한 프로젝트를 무료로 통합하고 사용할 수 있습니다! 소스 코드를 변경하고 재분배 할 수도 있습니다 (재판매하더라도).
그러나, 당신이 이것으로부터 약간의 이익을 얻거나, 그냥 물건을 계속 만들도록 격려하고 싶다면, 당신이 할 수있는 방법은 거의 없습니다.
좋아하는 프로젝트를 주연하고 공유합니다
- 나는 책을 좋아한다! 당신이 나를 사면 몇 년 후에 당신을 기억할 것입니다. ?
-PayPal을 통해 일회성 기부를 할 수 있습니다. 아마 구입할 것입니다 커피 차. ?
- 반복되는 월별 기부금을 설정하면 내가하는 일에 대한 흥미로운 소식 (모든 사람과 공유하지 않는 것).
Bitcoin -이 주소에서 비트 코인을 보낼 1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6 있습니다.
감사해요! ❤️
프로젝트 중 하나 에서이 라이브러리를 사용하는 경우이 목록에 추가하십시오.
3abn@alexjorgef/bandcamp-scraper@ben-wormald/bandcamp-scraper@bogochunas/package-shopify-crawler@lukekarrys/ebp@markab.io/node-api@thetrg/gibson@tryghost/mg-webscraper@web-master/node-web-scraper@zougui/furaffinityairport-clujapixpressbandcamp-scraperbeervana-scraperbible-scraperblankningsregistretblockchain-notifierbrave-search-scrapercamaleoncarirscevo-lookupcnn-marketcodementorcodinglove-scrapercovidaudegusta-scrapperdncliegg-crawlerfa.jsflamescraperfmgo-marketdatagatsby-source-bandcampgrowapihelyesirasjishonjobs-fetcherleximavenmacoolka-net-scrapemacoolka-networkmersul-microbuzelormersul-trenurilormit-ocw-scrapermix-dlnode-red-contrib-getdata-websitenode-red-contrib-scrape-itnurlresolverpaklek-cliparnpicarto-librayko-toolsrs-apisahibindensahibindenServersalesforcerelease-parserscrape-it-cliscrape-vinmonopoletscrapos-workersgdq-collectorsimple-ai-alphaspon-marketstartpage-quick-searchsteam-workshop-scrapertrump-cabinet-picksu-pull-it-ne-parts-finderubersetzungui-studentsearchuniversity-news-notifieruniwue-lernplaetze-scrapervandalen.rhyme.jswikitoolsyu-ncov-scrape-dxymit © IonicĂ bizĂu