flipkart-scraper
Version:
[](https://nodei.co/npm/flipkart-scraper/)
117 lines (116 loc) • 2.59 kB
TypeScript
import { ScraperStatus } from './enums';
import { StringOrNumber } from './typeAliases';
export interface ResponseObject {
/**
* Requested URL
*/
url: string;
/**
* HTTP Status Code
*/
status: number;
/**
* HTTP Status text
*/
statusText: string;
/**
* Response Time in milliseconds(ms)
*/
duration: number;
/**
* Response Headers from Flipkart server
*/
headers: any;
/**
* Response content
*/
data: any;
}
/**
* @internal
*/
export interface CompletedResponse {
httpResponse: ResponseObject;
category: string;
pageNo: number;
retryCount: number;
}
/**
* @internal
*/
export interface EnqueuePrams {
url: string;
category: string;
pageNo: number;
retryCount: number;
}
export interface ScraperOptions {
/**
* Maximum request to Flipkart affliate server
*/
maxRequest?: number;
/**
* Number for parallel processing in the queue
*/
concurrency?: number;
/**
* Maximum number of pages to scrape per category
*/
maxPage?: number;
}
export interface ScrapedData {
url: string;
apiData: any;
category: string;
pageNo: number;
retryCount: number;
}
export interface CategoryInfo {
category: string;
noOfPages: number;
totalProducts: number;
elapsed: number;
}
export interface PendingCategoryInfo {
category: string;
startTime: Date;
noOfPages: number;
elapsed: number;
totalProducts: number;
}
export interface FinishedInfo {
message: string;
totalRequest: number;
}
export interface RetryInfo extends EnqueuePrams {
status: number;
statusText: string;
errorCode: undefined | string;
}
export interface StatsInfo {
pendingCategories: PendingCategoryInfo[];
completedCategories: CategoryInfo[];
}
export interface StatsData {
startTime: Date | undefined;
endTime: Date | undefined;
status: ScraperStatus;
concurrency: number;
waitingRequests: number;
productsCount: StringOrNumber;
elapsed: StringOrNumber;
durationPerMillionProducts: StringOrNumber;
productsPerSec: StringOrNumber;
avgResponseTime: StringOrNumber;
requestPerSec: StringOrNumber;
requestedCount: StringOrNumber;
processedCount: StringOrNumber;
errorCount: StringOrNumber;
retryCount: StringOrNumber;
retryHaltCount: StringOrNumber;
pendingCategory: number;
completedCategory: number;
downloadSize: StringOrNumber;
downloadedSpeed: StringOrNumber;
info: StatsInfo;
}