From a965849022b5805bfe361cf9097efd8a4b27add1 Mon Sep 17 00:00:00 2001 From: coderhxl Date: Tue, 28 Feb 2023 15:36:59 +0800 Subject: [PATCH 1/2] Parameter config name correction --- README.md | 36 ++++++++++++++--------------- docs/cn.md | 42 +++++++++++++++++----------------- package.json | 2 +- publish/README.md | 36 ++++++++++++++--------------- publish/package.json | 2 +- src/api.ts | 54 ++++++++++++++++++++++---------------------- src/index.ts | 18 +++++++-------- src/request.ts | 20 ++++++++-------- src/types/api.ts | 12 +++++----- src/types/index.ts | 8 +++---- test/modal/test.ts | 10 ++++---- test/start/index.ts | 10 ++++---- 12 files changed, 125 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 94075467..64f1d386 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,9 @@ x-crawl is a Nodejs multifunctional crawler library. * [Method](#Method) * [RequestConfig](#RequestConfig) * [IntervalTime](#IntervalTime) - * [XCrawlBaseConifg](#XCrawlBaseConifg) - * [FetchBaseConifgV1](#FetchBaseConifgV1) - * [FetchBaseConifgV2](#FetchBaseConifgV2) + * [XCrawlBaseConfig](#XCrawlBaseConfig) + * [FetchBaseConfigV1](#FetchBaseConfigV1) + * [FetchBaseConfigV2](#FetchBaseConfigV2) * [FetchHTMLConfig](#FetchHTMLConfig ) * [FetchDataConfig](#FetchDataConfig) * [FetchFileConfig](#FetchFileConfig) @@ -101,7 +101,7 @@ Create a crawler instance via call xCrawl. The request queue is maintained by th For more detailed types, please see the [Types](#Types) section ```ts -function xCrawl(baseConfig?: XCrawlBaseConifg): XCrawlInstance +function xCrawl(baseConfig?: XCrawlBaseConfig): XCrawlInstance ``` #### Example @@ -185,14 +185,14 @@ function fetchData: ( #### Example ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' } ] myXCrawl.fetchData({ - requestConifg, // Request configuration, can be RequestConfig | RequestConfig[] + requestConfig, // Request configuration, can be RequestConfig | RequestConfig[] intervalTime: { max: 5000, min: 1000 } // The intervalTime passed in when not using myXCrawl }).then(res => { console.log(res) @@ -220,14 +220,14 @@ function fetchFile: ( #### Example ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx' }, { url: '/xxxx' }, { url: '/xxxx' } ] myXCrawl.fetchFile({ - requestConifg, + requestConfig, fileConfig: { storeDir: path.resolve(__dirname, './upload') // storage folder } @@ -299,10 +299,10 @@ type IntervalTime = number | { } ``` -### XCrawlBaseConifg +### XCrawlBaseConfig ```ts -interface XCrawlBaseConifg { +interface XCrawlBaseConfig { baseUrl?: string timeout?: number intervalTime?: IntervalTime @@ -311,19 +311,19 @@ interface XCrawlBaseConifg { } ``` -### FetchBaseConifgV1 +### FetchBaseConfigV1 ```ts -interface FetchBaseConifgV1 { - requestConifg: RequestConfig | RequestConfig[] +interface FetchBaseConfigV1 { + requestConfig: RequestConfig | RequestConfig[] intervalTime?: IntervalTime } ``` -### FetchBaseConifgV2 +### FetchBaseConfigV2 ```ts -interface FetchBaseConifgV2 { +interface FetchBaseConfigV2 { url: string timeout?: number proxy?: string @@ -333,20 +333,20 @@ interface FetchBaseConifgV2 { ### FetchHTMLConfig ```ts -type FetchHTMLConfig = string | FetchBaseConifgV2 +type FetchHTMLConfig = string | FetchBaseConfigV2 ``` ### FetchDataConfig ```ts -interface FetchDataConfig extends FetchBaseConifgV1 { +interface FetchDataConfig extends FetchBaseConfigV1 { } ``` ### FetchFileConfig ```ts -interface FetchFileConfig extends FetchBaseConifgV1 { +interface FetchFileConfig extends FetchBaseConfigV1 { fileConfig: { storeDir: string // Store folder extension?: string // filename extension diff --git a/docs/cn.md b/docs/cn.md index 5d9f1813..5b921a4d 100644 --- a/docs/cn.md +++ b/docs/cn.md @@ -47,9 +47,9 @@ x-crawl 是 Nodejs 多功能爬虫库。 * [Method](#Method) * [RequestConfig](#RequestConfig) * [IntervalTime](#IntervalTime) - * [XCrawlBaseConifg](#XCrawlBaseConifg) - * [FetchBaseConifgV1](#FetchBaseConifgV1) - * [FetchBaseConifgV2](#FetchBaseConifgV2) + * [XCrawlBaseConfig](#XCrawlBaseConfig) + * [FetchBaseConfigV1](#FetchBaseConfigV1) + * [FetchBaseConfigV2](#FetchBaseConfigV2) * [FetchHTMLConfig](#FetchHTMLConfig ) * [FetchDataConfig](#FetchDataConfig) * [FetchFileConfig](#FetchFileConfig) @@ -93,11 +93,11 @@ myXCrawl.startPolling({ d: 1 }, () => { const imgEls = jsdom.window.document.querySelectorAll('.carousel-wrapper .chief-recom-item img') // 设置请求配置 - const requestConifg = [] - imgEls.forEach((item) => requestConifg.push({ url: `https:${item.src}` })) + const requestConfig = [] + imgEls.forEach((item) => requestConfig.push({ url: `https:${item.src}` })) // 调用 fetchFile API 爬取图片 - myXCrawl.fetchFile({ requestConifg, fileConfig: { storeDir: './upload' } }) + myXCrawl.fetchFile({ requestConfig, fileConfig: { storeDir: './upload' } }) }) }) ``` @@ -125,7 +125,7 @@ myXCrawl.startPolling({ d: 1 }, () => { 更详细的类型请看[类型](#类型-6)部分内容 ```ts -function xCrawl(baseConfig?: XCrawlBaseConifg): XCrawlInstance +function xCrawl(baseConfig?: XCrawlBaseConfig): XCrawlInstance ``` #### 示例 @@ -209,14 +209,14 @@ function fetchData: ( #### 示例 ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' } ] myXCrawl.fetchData({ - requestConifg, // 请求配置, 可以是 RequestConfig | RequestConfig[] + requestConfig, // 请求配置, 可以是 RequestConfig | RequestConfig[] intervalTime: { max: 5000, min: 1000 } // 不使用 myXCrawl 时传入的 intervalTime }).then(res => { console.log(res) @@ -244,14 +244,14 @@ function fetchFile: ( #### 示例 ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx' }, { url: '/xxxx' }, { url: '/xxxx' } ] myXCrawl.fetchFile({ - requestConifg, + requestConfig, fileConfig: { storeDir: path.resolve(__dirname, './upload') // 存放文件夹 } @@ -323,10 +323,10 @@ type IntervalTime = number | { } ``` -### XCrawlBaseConifg +### XCrawlBaseConfig ```ts -interface XCrawlBaseConifg { +interface XCrawlBaseConfig { baseUrl?: string timeout?: number intervalTime?: IntervalTime @@ -335,19 +335,19 @@ interface XCrawlBaseConifg { } ``` -### FetchBaseConifgV1 +### FetchBaseConfigV1 ```ts -interface FetchBaseConifgV1 { - requestConifg: RequestConfig | RequestConfig[] +interface FetchBaseConfigV1 { + requestConfig: RequestConfig | RequestConfig[] intervalTime?: IntervalTime } ``` -### FetchBaseConifgV2 +### FetchBaseConfigV2 ```ts -interface FetchBaseConifgV2 { +interface FetchBaseConfigV2 { url: string timeout?: number proxy?: string @@ -357,20 +357,20 @@ interface FetchBaseConifgV2 { ### FetchHTMLConfig ```ts -type FetchHTMLConfig = string | FetchBaseConifgV2 +type FetchHTMLConfig = string | FetchBaseConfigV2 ``` ### FetchDataConfig ```ts -interface FetchDataConfig extends FetchBaseConifgV1 { +interface FetchDataConfig extends FetchBaseConfigV1 { } ``` ### FetchFileConfig ```ts -interface FetchFileConfig extends FetchBaseConifgV1 { +interface FetchFileConfig extends FetchBaseConfigV1 { fileConfig: { storeDir: string // 存放文件夹 extension?: string // 文件扩展名 diff --git a/package.json b/package.json index bbc92cdc..e8c7c630 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "x-crawl", - "version": "2.1.0", + "version": "2.2.0", "author": "coderHXL", "description": "XCrawl is a Nodejs multifunctional crawler library.", "license": "MIT", diff --git a/publish/README.md b/publish/README.md index 94075467..64f1d386 100644 --- a/publish/README.md +++ b/publish/README.md @@ -47,9 +47,9 @@ x-crawl is a Nodejs multifunctional crawler library. * [Method](#Method) * [RequestConfig](#RequestConfig) * [IntervalTime](#IntervalTime) - * [XCrawlBaseConifg](#XCrawlBaseConifg) - * [FetchBaseConifgV1](#FetchBaseConifgV1) - * [FetchBaseConifgV2](#FetchBaseConifgV2) + * [XCrawlBaseConfig](#XCrawlBaseConfig) + * [FetchBaseConfigV1](#FetchBaseConfigV1) + * [FetchBaseConfigV2](#FetchBaseConfigV2) * [FetchHTMLConfig](#FetchHTMLConfig ) * [FetchDataConfig](#FetchDataConfig) * [FetchFileConfig](#FetchFileConfig) @@ -101,7 +101,7 @@ Create a crawler instance via call xCrawl. The request queue is maintained by th For more detailed types, please see the [Types](#Types) section ```ts -function xCrawl(baseConfig?: XCrawlBaseConifg): XCrawlInstance +function xCrawl(baseConfig?: XCrawlBaseConfig): XCrawlInstance ``` #### Example @@ -185,14 +185,14 @@ function fetchData: ( #### Example ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' }, { url: '/xxxx', method: 'GET' } ] myXCrawl.fetchData({ - requestConifg, // Request configuration, can be RequestConfig | RequestConfig[] + requestConfig, // Request configuration, can be RequestConfig | RequestConfig[] intervalTime: { max: 5000, min: 1000 } // The intervalTime passed in when not using myXCrawl }).then(res => { console.log(res) @@ -220,14 +220,14 @@ function fetchFile: ( #### Example ```js -const requestConifg = [ +const requestConfig = [ { url: '/xxxx' }, { url: '/xxxx' }, { url: '/xxxx' } ] myXCrawl.fetchFile({ - requestConifg, + requestConfig, fileConfig: { storeDir: path.resolve(__dirname, './upload') // storage folder } @@ -299,10 +299,10 @@ type IntervalTime = number | { } ``` -### XCrawlBaseConifg +### XCrawlBaseConfig ```ts -interface XCrawlBaseConifg { +interface XCrawlBaseConfig { baseUrl?: string timeout?: number intervalTime?: IntervalTime @@ -311,19 +311,19 @@ interface XCrawlBaseConifg { } ``` -### FetchBaseConifgV1 +### FetchBaseConfigV1 ```ts -interface FetchBaseConifgV1 { - requestConifg: RequestConfig | RequestConfig[] +interface FetchBaseConfigV1 { + requestConfig: RequestConfig | RequestConfig[] intervalTime?: IntervalTime } ``` -### FetchBaseConifgV2 +### FetchBaseConfigV2 ```ts -interface FetchBaseConifgV2 { +interface FetchBaseConfigV2 { url: string timeout?: number proxy?: string @@ -333,20 +333,20 @@ interface FetchBaseConifgV2 { ### FetchHTMLConfig ```ts -type FetchHTMLConfig = string | FetchBaseConifgV2 +type FetchHTMLConfig = string | FetchBaseConfigV2 ``` ### FetchDataConfig ```ts -interface FetchDataConfig extends FetchBaseConifgV1 { +interface FetchDataConfig extends FetchBaseConfigV1 { } ``` ### FetchFileConfig ```ts -interface FetchFileConfig extends FetchBaseConifgV1 { +interface FetchFileConfig extends FetchBaseConfigV1 { fileConfig: { storeDir: string // Store folder extension?: string // filename extension diff --git a/publish/package.json b/publish/package.json index a7382ba4..f1b7ef87 100644 --- a/publish/package.json +++ b/publish/package.json @@ -1,6 +1,6 @@ { "name": "x-crawl", - "version": "2.1.0", + "version": "2.2.0", "author": "coderHXL", "description": "XCrawl is a Nodejs multifunctional crawler library.", "license": "MIT", diff --git a/src/api.ts b/src/api.ts index 0562deaa..7f4c2c9e 100644 --- a/src/api.ts +++ b/src/api.ts @@ -18,7 +18,7 @@ import { } from './utils' import { - FetchBaseConifgV1, + FetchBaseConfigV1, FetchDataConfig, FetchFileConfig, FetchHTML, @@ -29,20 +29,20 @@ import { IntervalTime, StartPollingConfig } from './types/api' -import { LoaderXCrawlBaseConifg } from './types' +import { LoaderXCrawlBaseConfig } from './types' import { RequestConfig, RequestResItem } from './types/request' -function mergeConfig( - baseConfig: LoaderXCrawlBaseConifg, +function mergeConfig( + baseConfig: LoaderXCrawlBaseConfig, rawConfig: T ): T { const newConfig = structuredClone(rawConfig) - // 1.处理 requestConifg - const requestConifgArr = isArray(newConfig.requestConifg) - ? newConfig.requestConifg - : [newConfig.requestConifg] - for (const requesttem of requestConifgArr) { + // 1.处理 requestConfig + const requestConfigArr = isArray(newConfig.requestConfig) + ? newConfig.requestConfig + : [newConfig.requestConfig] + for (const requesttem of requestConfigArr) { const { url, timeout, proxy } = requesttem // 1.1.baseUrl @@ -71,13 +71,13 @@ function mergeConfig( async function useBatchRequestByMode( mode: 'async' | 'sync', - requestConifg: RequestConfig | RequestConfig[], + requestConfig: RequestConfig | RequestConfig[], intervalTime: IntervalTime | undefined, callback: (requestRestem: RequestResItem) => void ) { - const requestConfigQueue = isArray(requestConifg) - ? requestConifg - : [requestConifg] + const requestConfigQueue = isArray(requestConfig) + ? requestConfig + : [requestConfig] if (mode === 'async') { await batchRequest(requestConfigQueue, intervalTime, callback) @@ -86,7 +86,7 @@ async function useBatchRequestByMode( } } -export function createFetchHTML(baseConfig: LoaderXCrawlBaseConifg) { +export function createFetchHTML(baseConfig: LoaderXCrawlBaseConfig) { let browser: Browser | null = null let createBrowserState: Promise | null = null let callTotal = 0 @@ -114,14 +114,14 @@ export function createFetchHTML(baseConfig: LoaderXCrawlBaseConifg) { const page = await browser!.newPage() await page.setViewport({ width: 1280, height: 1024 }) - const { requestConifg } = mergeConfig(baseConfig, { - requestConifg: isString(config) ? { url: config } : config + const { requestConfig } = mergeConfig(baseConfig, { + requestConfig: isString(config) ? { url: config } : config }) // 处理代理 - if (requestConifg.proxy) { + if (requestConfig.proxy) { await browser!.createIncognitoBrowserContext({ - proxyServer: requestConifg.proxy + proxyServer: requestConfig.proxy }) } else { await browser!.createIncognitoBrowserContext({ @@ -129,8 +129,8 @@ export function createFetchHTML(baseConfig: LoaderXCrawlBaseConifg) { }) } - const httpResponse = await page!.goto(requestConifg.url, { - timeout: requestConifg.timeout + const httpResponse = await page!.goto(requestConfig.url, { + timeout: requestConfig.timeout }) const content = await page!.content() @@ -155,12 +155,12 @@ export function createFetchHTML(baseConfig: LoaderXCrawlBaseConifg) { return fetchHTML } -export function createFetchData(baseConfig: LoaderXCrawlBaseConifg) { +export function createFetchData(baseConfig: LoaderXCrawlBaseConfig) { async function fetchData( config: FetchDataConfig, callback?: (res: FetchResCommonV1) => void ): Promise> { - const { requestConifg, intervalTime } = mergeConfig(baseConfig, config) + const { requestConfig, intervalTime } = mergeConfig(baseConfig, config) const container: FetchResCommonArrV1 = [] function handleRestem(requestRestem: RequestResItem) { @@ -182,7 +182,7 @@ export function createFetchData(baseConfig: LoaderXCrawlBaseConifg) { await useBatchRequestByMode( baseConfig.mode, - requestConifg, + requestConfig, intervalTime, handleRestem ) @@ -196,12 +196,12 @@ export function createFetchData(baseConfig: LoaderXCrawlBaseConifg) { return fetchData } -export function createFetchFile(baseConfig: LoaderXCrawlBaseConifg) { +export function createFetchFile(baseConfig: LoaderXCrawlBaseConfig) { async function fetchFile( config: FetchFileConfig, callback?: (res: FetchResCommonV1) => void ): Promise> { - const { requestConifg, intervalTime, fileConfig } = mergeConfig( + const { requestConfig, intervalTime, fileConfig } = mergeConfig( baseConfig, config ) @@ -254,7 +254,7 @@ export function createFetchFile(baseConfig: LoaderXCrawlBaseConifg) { await useBatchRequestByMode( baseConfig.mode, - requestConifg, + requestConfig, intervalTime, handleRestem ) @@ -265,7 +265,7 @@ export function createFetchFile(baseConfig: LoaderXCrawlBaseConifg) { // 打印保存文件的错误 quickSort(saveFileErrorArr).forEach((item) => log(logError(item.message))) - const saveFileTotal = isArray(requestConifg) ? requestConifg.length : 1 + const saveFileTotal = isArray(requestConfig) ? requestConfig.length : 1 const success = container.length const error = saveFileTotal - success log( diff --git a/src/index.ts b/src/index.ts index 1d4be0cc..2dfdfd30 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,24 +6,24 @@ import { } from './api' import { - LoaderXCrawlBaseConifg, - XCrawlBaseConifg, + LoaderXCrawlBaseConfig, + XCrawlBaseConfig, XCrawlInstance } from './types' -function loaderBaseConifg( - baseConfig: XCrawlBaseConifg | undefined -): LoaderXCrawlBaseConifg { +function loaderBaseConfig( + baseConfig: XCrawlBaseConfig | undefined +): LoaderXCrawlBaseConfig { const loaderBaseConfig = baseConfig ? baseConfig : {} if (!loaderBaseConfig.mode) { loaderBaseConfig.mode = 'async' } - return loaderBaseConfig as LoaderXCrawlBaseConifg + return loaderBaseConfig as LoaderXCrawlBaseConfig } -function createnInstance(baseConfig: LoaderXCrawlBaseConifg): XCrawlInstance { +function createnInstance(baseConfig: LoaderXCrawlBaseConfig): XCrawlInstance { const instance: XCrawlInstance = { fetchHTML: createFetchHTML(baseConfig), fetchData: createFetchData(baseConfig), @@ -34,8 +34,8 @@ function createnInstance(baseConfig: LoaderXCrawlBaseConifg): XCrawlInstance { return instance } -export default function xCrawl(baseConfig?: XCrawlBaseConifg): XCrawlInstance { - const newBaseConfig = loaderBaseConifg(baseConfig) +export default function xCrawl(baseConfig?: XCrawlBaseConfig): XCrawlInstance { + const newBaseConfig = loaderBaseConfig(baseConfig) const instance = createnInstance(newBaseConfig) diff --git a/src/request.ts b/src/request.ts index a5d92f22..820f1012 100644 --- a/src/request.ts +++ b/src/request.ts @@ -159,7 +159,7 @@ async function useSleepByBatch( } export async function batchRequest( - requestConifgs: RequestConfig[], + requestConfigs: RequestConfig[], intervalTime: IntervalTime | undefined, callback: (requestResItem: RequestResItem) => void ) { @@ -168,7 +168,7 @@ export async function batchRequest( log( `Begin execution, mode: ${logWarn('async')}, total: ${logNumber( - requestConifgs.length + requestConfigs.length )} ` ) @@ -177,7 +177,7 @@ export async function batchRequest( let errorTotal = 0 const requestQueue: Promise[] = [] const errorMessage: { message: string; valueOf: () => number }[] = [] - for (const requestConifg of requestConifgs) { + for (const requestConfig of requestConfigs) { const id = ++index await useSleepByBatch( @@ -187,7 +187,7 @@ export async function batchRequest( id ) - const requesttem = request(requestConifg) + const requesttem = request(requestConfig) .catch((error: any) => { errorTotal++ @@ -215,14 +215,14 @@ export async function batchRequest( quickSort(errorMessage).forEach((item) => log(logError(item.message))) log( - `requestsTotal: ${logNumber(requestConifgs.length)}, success: ${logSuccess( + `requestsTotal: ${logNumber(requestConfigs.length)}, success: ${logSuccess( successTotal )}, error: ${logError(errorTotal)}` ) } export async function syncBatchRequest( - requestConifgs: RequestConfig[], + requestConfigs: RequestConfig[], intervalTime: IntervalTime | undefined, callback: (requestResItem: RequestResItem) => void ) { @@ -231,14 +231,14 @@ export async function syncBatchRequest( log( `Begin execution, mode: ${logWarn('sync')}, total: ${logNumber( - requestConifgs.length + requestConfigs.length )} ` ) let id = 0 let successTotal = 0 let errorTotal = 0 - for (const requestConifg of requestConifgs) { + for (const requestConfig of requestConfigs) { id++ await useSleepByBatch( @@ -251,7 +251,7 @@ export async function syncBatchRequest( let isRequestSuccess = true let requestResItem: RequestResItem | null = null try { - const requestRes = await request(requestConifg) + const requestRes = await request(requestConfig) requestResItem = { id, ...requestRes } log(logSuccess(`Request ${logNumber(id)} is an success`)) successTotal++ @@ -269,7 +269,7 @@ export async function syncBatchRequest( log(logSuccess('All requests are over!')) log( - `requestsTotal: ${logNumber(requestConifgs.length)}, success: ${logSuccess( + `requestsTotal: ${logNumber(requestConfigs.length)}, success: ${logSuccess( successTotal )}, error: ${logError(errorTotal)}` ) diff --git a/src/types/api.ts b/src/types/api.ts index daae3fd0..0c3af1e5 100644 --- a/src/types/api.ts +++ b/src/types/api.ts @@ -6,22 +6,22 @@ import { RequestConfig } from './request' export type IntervalTime = number | { max: number; min?: number } -export interface FetchBaseConifgV1 { - requestConifg: RequestConfig | RequestConfig[] +export interface FetchBaseConfigV1 { + requestConfig: RequestConfig | RequestConfig[] intervalTime?: IntervalTime } -export interface FetchBaseConifgV2 { +export interface FetchBaseConfigV2 { url: string timeout?: number proxy?: string } -export type FetchHTMLConfig = string | FetchBaseConifgV2 +export type FetchHTMLConfig = string | FetchBaseConfigV2 -export interface FetchDataConfig extends FetchBaseConifgV1 {} +export interface FetchDataConfig extends FetchBaseConfigV1 {} -export interface FetchFileConfig extends FetchBaseConifgV1 { +export interface FetchFileConfig extends FetchBaseConfigV1 { fileConfig: { storeDir: string extension?: string diff --git a/src/types/index.ts b/src/types/index.ts index c43bf032..2a976604 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -11,7 +11,7 @@ import { } from './api' import { MapTypeObject } from './common' -export interface XCrawlBaseConifg { +export interface XCrawlBaseConfig { baseUrl?: string timeout?: number intervalTime?: IntervalTime @@ -19,12 +19,12 @@ export interface XCrawlBaseConifg { proxy?: string } -interface LoaderXCrawlBaseConifgValue { +interface LoaderXCrawlBaseConfigValue { mode: 'async' | 'sync' } -export type LoaderXCrawlBaseConifg = XCrawlBaseConifg & - MapTypeObject +export type LoaderXCrawlBaseConfig = XCrawlBaseConfig & + MapTypeObject export interface XCrawlInstance { fetchHTML: ( diff --git a/test/modal/test.ts b/test/modal/test.ts index f62b8512..163fc174 100644 --- a/test/modal/test.ts +++ b/test/modal/test.ts @@ -22,7 +22,7 @@ function httpProtocol() { httpXCrawl .fetchData({ - requestConifg: { + requestConfig: { url: 'http://localhost:9001/api/home/goodprice' } }) @@ -63,7 +63,7 @@ function fetchDataAPI() { myXCrawl .fetchData({ - requestConifg: { + requestConfig: { url: 'http://localhost:9001/api/area/阳江市', method: 'POST', data: { @@ -89,7 +89,7 @@ function fetchFileAPI() { myXCrawl .fetchData({ - requestConifg: { + requestConfig: { url: 'http://localhost:9001/api/area/阳江市', method: 'POST', data: { @@ -101,13 +101,13 @@ function fetchFileAPI() { }) .then((res) => { const roomList = res[0].data.data.list - const requestConifg = roomList.map((item: any) => ({ + const requestConfig = roomList.map((item: any) => ({ url: item.coverUrl })) myXCrawl .fetchFile({ - requestConifg, + requestConfig, fileConfig: { storeDir: path.resolve(__dirname, './upload') } diff --git a/test/start/index.ts b/test/start/index.ts index e73dfc29..42eed949 100644 --- a/test/start/index.ts +++ b/test/start/index.ts @@ -15,16 +15,16 @@ import xCrawl from '../../src' // '.timeline-box img' // ) -// let requestConifg: any[] = [] +// let requestConfig: any[] = [] -// imgEls.forEach((item) => requestConifg.push({ url: `https:${item.src}` })) +// imgEls.forEach((item) => requestConfig.push({ url: `https:${item.src}` })) -// requestConifg = requestConifg.splice(0, 30) +// requestConfig = requestConfig.splice(0, 30) -// console.log(requestConifg) +// console.log(requestConfig) // testXCrawl.fetchFile({ -// requestConifg, +// requestConfig, // fileConfig: { storeDir: path.resolve(__dirname, 'upload') } // }) // }) From ac35805c620a7917428b3bcf83485c85d3652919 Mon Sep 17 00:00:00 2001 From: coderhxl Date: Tue, 28 Feb 2023 16:19:44 +0800 Subject: [PATCH 2/2] docs: update --- README.md | 53 +++++++++++++++++++++++------ assets/{ => cn}/crawler-result.png | Bin assets/{ => cn}/crawler.png | Bin assets/en/crawler-result.png | Bin 0 -> 137007 bytes assets/en/crawler.png | Bin 0 -> 40235 bytes docs/cn.md | 8 ++--- test/start/index.js | 2 +- test/start/index.ts | 28 +++++++++++++++ 8 files changed, 75 insertions(+), 16 deletions(-) rename assets/{ => cn}/crawler-result.png (100%) rename assets/{ => cn}/crawler.png (100%) create mode 100644 assets/en/crawler-result.png create mode 100644 assets/en/crawler.png diff --git a/README.md b/README.md index 64f1d386..d4a0ed13 100644 --- a/README.md +++ b/README.md @@ -70,26 +70,57 @@ npm install x-crawl ## Example -Get the title of https://docs.github.com/zh/get-started as an example: +Example of fetching featured video cover image for youtube homepage every other day: ```js -// Import module ES/CJS +// 1.Import module ES/CJS import xCrawl from 'x-crawl' -// Create a crawler instance -const docsXCrawl = xCrawl({ - baseUrl: 'https://docs.github.com', - timeout: 10000, - intervalTime: { max: 2000, min: 1000 } +// 2.Create a crawler instance +const myXCrawl = xCrawl({ + timeout: 10000, // overtime time + intervalTime: { max: 3000, min: 2000 } // control request frequency }) -// Call fetchHTML API to crawl -docsXCrawl.fetchHTML('/zh/get-started').then((res) => { - const { jsdom } = res.data - console.log(jsdom.window.document.querySelector('title')?.textContent) +// 3.Set the crawling task +// Call the startPolling API to start the polling function, and the callback function will be called every other day +myXCrawl.startPolling({ d: 1 }, () => { + // Call fetchHTML API to crawl HTML + myXCrawl.fetchHTML('https://www.youtube.com/').then((res) => { + const { jsdom } = res.data // By default, the JSDOM library is used to parse HTML + + // Get the cover image element of the Promoted Video + const imgEls = jsdom.window.document.querySelectorAll( + '.yt-core-image--fill-parent-width' + ) + + // set request configuration + const requestConfig = [] + imgEls.forEach((item) => { + if (item.src) { + requestConfig.push({ url: item.src }) + } + }) + + // Call the fetchFile API to crawl pictures + myXCrawl.fetchFile({ requestConfig, fileConfig: { storeDir: './upload' } }) + }) }) + ``` +running result: + +
+ +
+ +
+ +
+ +**Note:** Do not crawl randomly, here is just to demonstrate how to use XCrawl, and control the request frequency within 3000ms to 2000ms. + ## Core concepts ### x-crawl diff --git a/assets/crawler-result.png b/assets/cn/crawler-result.png similarity index 100% rename from assets/crawler-result.png rename to assets/cn/crawler-result.png diff --git a/assets/crawler.png b/assets/cn/crawler.png similarity index 100% rename from assets/crawler.png rename to assets/cn/crawler.png diff --git a/assets/en/crawler-result.png b/assets/en/crawler-result.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd5ef07d977cc918e4c632387590c2480ae2552 GIT binary patch literal 137007 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%0DpBJ9ddUFqJi`dM)6>kH1r!Dvny%sV&KaPj|{ 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 literal 0 HcmV?d00001 diff --git a/assets/en/crawler.png b/assets/en/crawler.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed33a2fff084b1f1f3f757c08576d41a74a2f5c GIT binary patch literal 40235 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 { 运行效果:
- +
- +
**注意:** 请勿随意爬取,这里只是为了演示如何使用 XCrawl ,并将请求频率控制在 3000ms 到 2000ms 内。 diff --git a/test/start/index.js b/test/start/index.js index 569b7a40..291ac9f1 100644 --- a/test/start/index.js +++ b/test/start/index.js @@ -1 +1 @@ -"use strict";var e=require("node:path"),t=require("node:fs"),n=require("node:fs/promises"),o=require("jsdom"),r=require("puppeteer"),s=require("node:http"),a=require("node:https"),i=require("node:url"),c=require("https-proxy-agent"),u=require("chalk");function l(e,t,n){const o=e[t];e[t]=e[n],e[n]=o}function f(e){return function t(n,o){if(n>=o)return;const r=e[o];let s=n,a=o-1;for(;s<=a;){for(;e[s]r;)a--;s<=a&&(l(e,s,a),s++,a--)}l(e,s,o),t(n,s-1),t(s+1,o)}(0,e.length-1),e}const h=console.log,d=u.hex("#a57fff"),m=u.green,p=u.red,g=u.yellow;function w(e){return void 0===e}function y(e){return"number"==typeof e}function $(e){return Array.isArray(e)}function q(e,t){let n=e?`${e}`:"?";if(t)for(const e in t){n+=`&${e}=${t[e]}`}else n=e;return n}function v(e){const{protocol:t,hostname:n,port:o,pathname:r,search:u}=new i.URL(e.url),l="http:"===t,f={agent:e.proxy?c(e.proxy):l?new s.Agent:new a.Agent,protocol:t,hostname:n,port:o,path:r,search:q(u,e.params),method:e.method?.toLocaleUpperCase()??"GET",headers:{},timeout:e.timeout};return f.headers=function(e,t){const n={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",...e.headers??{}};return"POST"===t.method&&e.data&&(n["Content-Type"]="application/json",n["Content-Length"]=Buffer.byteLength(e.data)),n}(e,f),f}function x(e){return new Promise(((t,n)=>{const o=w(e.data);e.data=o?e.data:JSON.stringify(e.data);const r=v(e);function i(e){const{statusCode:n,headers:o}=e,r=[];e.on("data",(e=>r.push(e))),e.on("end",(()=>{const e=Buffer.concat(r);t({statusCode:n,headers:o,data:e})}))}let c;c="http:"===r.protocol?s.request(r,i):a.request(r,i),c.on("timeout",(()=>{n(new Error(`Timeout ${e.timeout}ms`))})),c.on("error",(e=>{n(e)})),"POST"!==r.method||o||c.write(e.data),c.end()}))}async function T(e,t,n,o){if(e&&o>1){const e=t?n:function(e,t=0){let n=Math.floor(Math.random()*e);for(;nsetTimeout(t,e)))}(e)}else h(`Request ${d(o)} does not need to sleep, send immediately`)}function C(e,t){const n=structuredClone(t),o=$(n.requestConifg)?n.requestConifg:[n.requestConifg];for(const t of o){const{url:n,timeout:o,proxy:r}=t;w(e.baseUrl)||(t.url=e.baseUrl+n),w(o)&&(t.timeout=e.timeout),w(r)&&(t.proxy=e.proxy)}return w(n.intervalTime)&&(n.intervalTime=e.intervalTime),n}async function S(e,t,n,o){const r=$(t)?t:[t];"async"===e?await async function(e,t,n){const o=!w(t),r=y(t);h(`Begin execution, mode: ${g("async")}, total: ${d(e.length)} `);let s=0,a=0,i=0;const c=[],u=[];for(const l of e){const e=++s;await T(o,r,t,e);const f=x(l).catch((t=>{i++;const n=`Request ${e} is an error: ${t.message}`;u.push({message:n,valueOf:()=>e})})).then((t=>{t&&(a++,n({id:e,...t}))}));c.push(f)}h(m("All requests have been sent!")),await Promise.all(c),f(u).forEach((e=>h(p(e.message)))),h(`requestsTotal: ${d(e.length)}, success: ${m(a)}, error: ${p(i)}`)}(r,n,o):await async function(e,t,n){const o=!w(t),r=y(t);h(`Begin execution, mode: ${g("sync")}, total: ${d(e.length)} `);let s=0,a=0,i=0;for(const c of e){s++,await T(o,r,t,s);let e=!0,u=null;try{u={id:s,...await x(c)},h(m(`Request ${d(s)} is an success`)),a++}catch(t){e=!1,h(p(`Request ${s} is an error: ${t.message}`)),i++}e&&n&&n(u)}h(m("All requests are over!")),h(`requestsTotal: ${d(e.length)}, success: ${m(a)}, error: ${p(i)}`)}(r,n,o)}function P(e){let t=null,n=null,s=0;return async function(a,i){s++,1===s&&(n=r.launch().then((e=>{t=e}))),n&&(await Promise.all([n]),n=null);const c=await t.newPage();await c.setViewport({width:1280,height:1024});const{requestConifg:u}=C(e,{requestConifg:(l=a,"string"==typeof l?{url:a}:a)});var l;u.proxy?await t.createIncognitoBrowserContext({proxyServer:u.proxy}):await t.createIncognitoBrowserContext({proxyServer:void 0});const f=await c.goto(u.url,{timeout:u.timeout}),h=await c.content();0==--s&&t.close();const d={httpResponse:f,data:{page:c,jsdom:new o.JSDOM(h)}};return i&&i(d),d}}function b(e){return async function(t,n){const{requestConifg:o,intervalTime:r}=C(e,t),s=[];return await S(e.mode,o,r,(function(e){const t=e.headers["content-type"]??"",o=e.data,r=t.includes("text")?o.toString():JSON.parse(o.toString()),a={...e,data:r};n&&n(a),s.push(a)})),f(s.map((e=>({...e,valueOf:()=>e.id}))))}}function A(o){return async function(r,s){const{requestConifg:a,intervalTime:i,fileConfig:c}=C(o,r),u=[],l=[],g=[];t.existsSync(c.storeDir)||t.mkdirSync(c.storeDir),await S(o.mode,a,i,(function(t){const{id:o,headers:r,data:a}=t,i=r["content-type"]??"",f=c.extension??i.split("/").pop(),h=(new Date).getTime().toString(),d=e.resolve(c.storeDir,`${h}.${f}`),m=n.writeFile(d,a).catch((e=>{const t=`File save error at id ${o}: ${e.message}`;return g.push({message:t,valueOf:()=>o}),!0})).then((e=>{if(e)return;const n={...t,data:{fileName:h,mimeType:i,size:a.length,filePath:d}};s&&s(n),u.push(n)}));l.push(m)})),await Promise.all(l),f(g).forEach((e=>h(p(e.message))));const w=$(a)?a.length:1,y=u.length,q=w-y;return h(`saveFileTotal: ${d(w)}, success: ${m(y)}, error: ${p(q)}`),f(u.map((e=>({...e,valueOf:()=>e.id}))))}}function M(e,t){const{d:n,h:o,m:r}=e,s=(w(n)?0:1e3*n*60*60*24)+(w(o)?0:1e3*o*60*60)+(w(r)?0:1e3*r*60);let a=0;function i(){console.log(g(`Start the ${g.bold(++a)} polling`)),t(a)}i(),setInterval(i,s)}const O=function(e){const t=function(e){const t=e||{};return t.mode||(t.mode="async"),t}(e);return function(e){return{fetchHTML:P(e),fetchData:b(e),fetchFile:A(e),startPolling:M}}(t)}({timeout:1e4,intervalTime:{max:3e3,min:2e3}});O.startPolling({d:1},(()=>{O.fetchHTML("https://www.bilibili.com/guochuang/").then((t=>{const{jsdom:n}=t.data,o=n.window.document.querySelectorAll(".carousel-wrapper .chief-recom-item img"),r=[];o.forEach((e=>r.push({url:`https:${e.src}`}))),O.fetchFile({requestConifg:r,fileConfig:{storeDir:e.resolve(__dirname,"./upload")}})}))})); +"use strict";var e=require("node:path"),t=require("node:fs"),n=require("node:fs/promises"),o=require("jsdom"),r=require("puppeteer"),s=require("node:http"),a=require("node:https"),i=require("node:url"),u=require("https-proxy-agent"),c=require("chalk");function l(e,t,n){const o=e[t];e[t]=e[n],e[n]=o}function f(e){return function t(n,o){if(n>=o)return;const r=e[o];let s=n,a=o-1;for(;s<=a;){for(;e[s]r;)a--;s<=a&&(l(e,s,a),s++,a--)}l(e,s,o),t(n,s-1),t(s+1,o)}(0,e.length-1),e}const d=console.log,h=c.hex("#a57fff"),m=c.green,p=c.red,g=c.yellow;function w(e){return void 0===e}function y(e){return"number"==typeof e}function q(e){return Array.isArray(e)}function $(e,t){let n=e?`${e}`:"?";if(t)for(const e in t){n+=`&${e}=${t[e]}`}else n=e;return n}function v(e){const{protocol:t,hostname:n,port:o,pathname:r,search:c}=new i.URL(e.url),l="http:"===t,f={agent:e.proxy?u(e.proxy):l?new s.Agent:new a.Agent,protocol:t,hostname:n,port:o,path:r,search:$(c,e.params),method:e.method?.toLocaleUpperCase()??"GET",headers:{},timeout:e.timeout};return f.headers=function(e,t){const n={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",...e.headers??{}};return"POST"===t.method&&e.data&&(n["Content-Type"]="application/json",n["Content-Length"]=Buffer.byteLength(e.data)),n}(e,f),f}function x(e){return new Promise(((t,n)=>{const o=w(e.data);e.data=o?e.data:JSON.stringify(e.data);const r=v(e);function i(e){const{statusCode:n,headers:o}=e,r=[];e.on("data",(e=>r.push(e))),e.on("end",(()=>{const e=Buffer.concat(r);t({statusCode:n,headers:o,data:e})}))}let u;u="http:"===r.protocol?s.request(r,i):a.request(r,i),u.on("timeout",(()=>{n(new Error(`Timeout ${e.timeout}ms`))})),u.on("error",(e=>{n(e)})),"POST"!==r.method||o||u.write(e.data),u.end()}))}async function T(e,t,n,o){if(e&&o>1){const e=t?n:function(e,t=0){let n=Math.floor(Math.random()*e);for(;nsetTimeout(t,e)))}(e)}else d(`Request ${h(o)} does not need to sleep, send immediately`)}function C(e,t){const n=structuredClone(t),o=q(n.requestConfig)?n.requestConfig:[n.requestConfig];for(const t of o){const{url:n,timeout:o,proxy:r}=t;w(e.baseUrl)||(t.url=e.baseUrl+n),w(o)&&(t.timeout=e.timeout),w(r)&&(t.proxy=e.proxy)}return w(n.intervalTime)&&(n.intervalTime=e.intervalTime),n}async function S(e,t,n,o){const r=q(t)?t:[t];"async"===e?await async function(e,t,n){const o=!w(t),r=y(t);d(`Begin execution, mode: ${g("async")}, total: ${h(e.length)} `);let s=0,a=0,i=0;const u=[],c=[];for(const l of e){const e=++s;await T(o,r,t,e);const f=x(l).catch((t=>{i++;const n=`Request ${e} is an error: ${t.message}`;c.push({message:n,valueOf:()=>e})})).then((t=>{t&&(a++,n({id:e,...t}))}));u.push(f)}d(m("All requests have been sent!")),await Promise.all(u),f(c).forEach((e=>d(p(e.message)))),d(`requestsTotal: ${h(e.length)}, success: ${m(a)}, error: ${p(i)}`)}(r,n,o):await async function(e,t,n){const o=!w(t),r=y(t);d(`Begin execution, mode: ${g("sync")}, total: ${h(e.length)} `);let s=0,a=0,i=0;for(const u of e){s++,await T(o,r,t,s);let e=!0,c=null;try{c={id:s,...await x(u)},d(m(`Request ${h(s)} is an success`)),a++}catch(t){e=!1,d(p(`Request ${s} is an error: ${t.message}`)),i++}e&&n&&n(c)}d(m("All requests are over!")),d(`requestsTotal: ${h(e.length)}, success: ${m(a)}, error: ${p(i)}`)}(r,n,o)}function P(e){let t=null,n=null,s=0;return async function(a,i){s++,1===s&&(n=r.launch().then((e=>{t=e}))),n&&(await Promise.all([n]),n=null);const u=await t.newPage();await u.setViewport({width:1280,height:1024});const{requestConfig:c}=C(e,{requestConfig:(l=a,"string"==typeof l?{url:a}:a)});var l;c.proxy?await t.createIncognitoBrowserContext({proxyServer:c.proxy}):await t.createIncognitoBrowserContext({proxyServer:void 0});const f=await u.goto(c.url,{timeout:c.timeout}),d=await u.content();0==--s&&t.close();const h={httpResponse:f,data:{page:u,jsdom:new o.JSDOM(d)}};return i&&i(h),h}}function b(e){return async function(t,n){const{requestConfig:o,intervalTime:r}=C(e,t),s=[];return await S(e.mode,o,r,(function(e){const t=e.headers["content-type"]??"",o=e.data,r=t.includes("text")?o.toString():JSON.parse(o.toString()),a={...e,data:r};n&&n(a),s.push(a)})),f(s.map((e=>({...e,valueOf:()=>e.id}))))}}function A(o){return async function(r,s){const{requestConfig:a,intervalTime:i,fileConfig:u}=C(o,r),c=[],l=[],g=[];t.existsSync(u.storeDir)||t.mkdirSync(u.storeDir),await S(o.mode,a,i,(function(t){const{id:o,headers:r,data:a}=t,i=r["content-type"]??"",f=u.extension??i.split("/").pop(),d=(new Date).getTime().toString(),h=e.resolve(u.storeDir,`${d}.${f}`),m=n.writeFile(h,a).catch((e=>{const t=`File save error at id ${o}: ${e.message}`;return g.push({message:t,valueOf:()=>o}),!0})).then((e=>{if(e)return;const n={...t,data:{fileName:d,mimeType:i,size:a.length,filePath:h}};s&&s(n),c.push(n)}));l.push(m)})),await Promise.all(l),f(g).forEach((e=>d(p(e.message))));const w=q(a)?a.length:1,y=c.length,$=w-y;return d(`saveFileTotal: ${h(w)}, success: ${m(y)}, error: ${p($)}`),f(c.map((e=>({...e,valueOf:()=>e.id}))))}}function M(e,t){const{d:n,h:o,m:r}=e,s=(w(n)?0:1e3*n*60*60*24)+(w(o)?0:1e3*o*60*60)+(w(r)?0:1e3*r*60);let a=0;function i(){console.log(g(`Start the ${g.bold(++a)} polling`)),t(a)}i(),setInterval(i,s)}const O=function(e){const t=function(e){const t=e||{};return t.mode||(t.mode="async"),t}(e);return function(e){return{fetchHTML:P(e),fetchData:b(e),fetchFile:A(e),startPolling:M}}(t)}({timeout:1e4,intervalTime:{max:3e3,min:2e3},proxy:"http://127.0.0.1:14892"});O.startPolling({d:1},(()=>{O.fetchHTML("https://www.youtube.com/").then((t=>{const{jsdom:n}=t.data,o=n.window.document.querySelectorAll(".yt-core-image--fill-parent-width"),r=[];o.forEach((e=>{e.src&&r.push({url:e.src})})),O.fetchFile({requestConfig:r,fileConfig:{storeDir:e.resolve(__dirname,"./upload")}})}))})); diff --git a/test/start/index.ts b/test/start/index.ts index 42eed949..b9d00220 100644 --- a/test/start/index.ts +++ b/test/start/index.ts @@ -28,3 +28,31 @@ import xCrawl from '../../src' // fileConfig: { storeDir: path.resolve(__dirname, 'upload') } // }) // }) + +const myXCrawl = xCrawl({ + timeout: 10000, + intervalTime: { max: 3000, min: 2000 }, + proxy: 'http://127.0.0.1:14892' +}) + +myXCrawl.startPolling({ d: 1 }, () => { + myXCrawl.fetchHTML('https://www.youtube.com/').then((res) => { + const { jsdom } = res.data + + const imgEls = jsdom.window.document.querySelectorAll( + '.yt-core-image--fill-parent-width' + ) + + const requestConfig: any[] = [] + imgEls.forEach((item) => { + if (item.src) { + requestConfig.push({ url: item.src }) + } + }) + + myXCrawl.fetchFile({ + requestConfig, + fileConfig: { storeDir: path.resolve(__dirname, './upload') } + }) + }) +})