人間のnode.jsスクレーパー。
byのスポンサー:by:
Capsolver.comは、さまざまな種類のCaptchasを自動的に解決することを専門とするAI駆動のサービスです。 Recaptcha V2、Recaptcha V3、Hcaptcha、Funcaptcha、Datadome、AWS Captcha、Geetest、Cloudflare Captcha / Challenge 5s、Imperva / Incapsulaなどのキャプチャをサポートしています。開発者向けに、Capsolverはドキュメントに詳述されているAPI統合オプションを提供し、Captchaのアプリケーションへの解決の統合を促進します。また、ChromeとFirefox用のブラウザ拡張機能を提供しているため、ブラウザ内で直接サービスを簡単に使用できます。さまざまな価格設定パッケージを利用でき、さまざまなニーズに対応し、ユーザーの柔軟性を確保します。
# Using npm
npm install --save scrape-it
# Using yarn
yarn add scrape-it PROTIP : npm install --global scrape-it-cli (またはyarn global add scrape-it-cli )。
頻繁な質問とその回答がいくつかあります。
scrape-it 、リクエストを作成するための単純なリクエストモジュールのみがあります。つまり、Ajaxのページを直接解析することはできませんが、一般的にこれらのシナリオがあります。
example.com/api/that-endpoint ) scrape-it渡すと、応答を解析できるようになります。.scrapeHTMLメソッドを使用します。scrape-itでページをクロールする派手な方法はありません。簡単なシナリオの場合、初期ページのURLのリストを解析し、約束を使用して各ページを解析できます。また、別のクローラーを使用してWebサイトをダウンロードしてから、 .scrapeHTMLメソッドを使用してローカルファイルをスクリープできます。
.scrapeHTMLを使用して、 fs.readFileを使用してローカルファイルから読み取りを解析します。
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 (オブジェクト):スクレイプされたデータ。$ (function):Cheeerio関数。これは、必要に応じて、DOMで他の操作を行うのに便利かもしれません。response (オブジェクト):応答オブジェクト。body (文字列):ひもとしての生体。scrapeIt.scrapeHTML($, opts)提供された要素のデータを削ります。
セレクターの形式については、Cheerioライブラリのセレクターセクションを参照してください
Cheerio $ :入力要素。
オブジェクトopts :スクレイピング情報を含むオブジェクト。リストをこすりたい場合は、 listItemセレクターを使用する必要があります。
listItem (string):リストアイテムセレクター。data (オブジェクト):リストオブジェクトに含めるフィールド:<fieldName> (オブジェクト|文字列):セレクターまたは含むオブジェクト:selector (文字列):セレクター。convert (function):値を変更するオプションの関数。how (function | string):値にアクセスする関数または関数名。attr (string):提供されている場合、値は属性名に基づいて取得されます。trim (boolean): falseの場合、値はトリミングされません(デフォルト: true )。closest (文字列):提供されている場合、指定された要素の最初の祖先を返します。eq (number):提供されている場合、 n番目の要素を選択します。texteq (number):提供されている場合、 n番目の直接テキストチャイルドを選択します。深いテキストの子供の選択はまだ不可能です。 howを上書きします。listItem (オブジェクト): 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を介して1回限りの寄付をすることができます。おそらく購入しますコーヒーお茶。 ?
- 毎月の寄付を繰り返すと、私がしていることについて興味深いニュースが得られます(私がみんなと共有していないこと)。
ビットコイン- このアドレスでビットコインを送ることができます(または下のコードをスキャンします): 1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6
ありがとう! ❤❤️
プロジェクトの1つでこのライブラリを使用している場合は、このリストに追加してください。
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