bid-tool/scrape-data-keyword/models/allbids-scrap-model.js

60 lines
1.5 KiB
JavaScript

import axios from "axios";
import browser from "../system/browser.js";
import { extractModelId, extractNumber } from "../system/ultils.js";
import { ScrapModel } from "./scrap-model.js";
export class AllbidsScrapModel extends ScrapModel {
action = async () => {
const urlsData = this.extractUrls();
console.log({ urlsData });
for (let item of urlsData) {
// await this.page.goto(item.url);
// const data = await this.getItemsInHtml(item);
// const results = this.filterItemByKeyword(item.keyword, data);
// this.results[item.keyword] = results;
// console.log({ results: this.results });
const { data } = await axios({
url: item.url,
method: "POST",
data: {
top: 50,
skip: 0,
sort: {},
searchText: item.keyword,
filter: {
Display: true,
},
dropship: false,
},
});
const auctions = data?.auctions || [];
const mappedData = auctions.map((item) => {
return {
url: item.AucDetailsUrlLink,
image_url: item.aucThumbnailUrl,
name: item.aucTitle,
keyword: data.keyword,
model: extractModelId(item.AucDetailsUrlLink),
current_price: item.aucCurrentBid,
scrap_config_id: this.scrap_config_id,
};
});
const results = this.filterItemByKeyword(item.keyword, mappedData);
this.results[item.keyword] = results;
console.log({ results: this.results });
}
};
}