quickscraper-sdk
Version:
Quick Scraper SDK NodeJS APIs
115 lines (114 loc) • 3.77 kB
TypeScript
/// <reference types="node" />
export interface IQuickScraperMetadata {
quotaMax: string | undefined;
quotaRemaining: string | undefined;
}
export interface IQuickScraperResponse {
data: string;
metadata: IQuickScraperMetadata;
}
export interface IParseOptions {
premium?: boolean;
render?: boolean;
isKeepHeaders?: boolean;
country_code?: string;
session_number?: string;
format?: string;
headers?: {
[key: string]: string;
};
device_type?: string;
parserSubscriptionId?: string;
webhookRequestId?: string;
customSelectors?: IActions[];
formData?: IFormData;
keepSelection?: boolean;
isScroll?: boolean;
scrollTimeout?: number;
isKeepFormDataSelection?: boolean;
isPabbly?: boolean;
isZapier?: boolean;
dynamicInputs?: Partial<IDynamicInputs>[];
parserResponseType?: string;
customRequestHeaders?: any;
}
declare type ParsedUrlQueryInput = NodeJS.Dict<string | number | boolean | Array<any> | any | ReadonlyArray<string> | ReadonlyArray<number> | ReadonlyArray<boolean> | null>;
export interface IUrlOptions extends ParsedUrlQueryInput {
URL?: string;
access_token?: string;
render?: boolean;
keep_headers?: boolean;
session_number?: string;
country_code?: string;
premium?: boolean;
device_type?: string;
customSelectors?: IActions[];
formData?: IFormData;
keepSelection?: boolean;
isScroll?: boolean;
scrollTimeout?: number;
isKeepFormDataSelection?: boolean;
isPabbly?: boolean;
isZapier?: boolean;
dynamicInputs?: Partial<IDynamicInputs>[];
parserResponseType?: string;
}
export interface IAccountInfo {
allocatedCredits: number;
remainingCredits: number;
usedCredits: number;
successRequests: number;
failedRequests: number;
allowedConcurrentRequests: number;
currentConcurrentRequests: number;
subscriptionExpiryDate: unknown;
}
export interface IActions {
name: string;
selectorScript: string;
isScript: boolean;
options?: string | null;
}
export interface IFormField {
isScript?: boolean;
selectorScript?: string;
value?: string;
}
export interface IFormData {
formSelector?: string;
submitButtonSelector?: string;
formSelectorScript?: string;
submitButtonSelectorScript?: string;
formFields: IFormField[];
}
export interface IDynamicInputs {
name: string;
value: string;
}
export declare class QuickScraper {
private parseUrl;
private accountUrl;
private accessToken;
private DEFAULT;
constructor(accessToken?: string);
setHost(host: string): void;
setAccessToken(accessToken: string): void;
private getContent;
private postContent;
getHtml(url: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
writeHtmlToFile(url: string, filePath: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
private writeCSVFile;
private getAllImagesInZip;
private writeDOCXFile;
getJsonUsingParser(url: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
getCsvUsingParser(url: string, filePath: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
getExcelUsingParser(url: string, filePath: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
post(url: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
private put;
account(): Promise<IAccountInfo>;
private prepareRequestBodyOrUrl;
private prepareHeaders;
executeJsonParser(url: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
getData(url: string, parseOptions?: IParseOptions): Promise<IQuickScraperResponse>;
}
export {};