36 lines
975 B
JavaScript
36 lines
975 B
JavaScript
export class ScrapModel {
|
|
constructor({ keywords, search_url, scrap_config_id, page, web_bid }) {
|
|
this.keywords = keywords;
|
|
this.search_url = search_url;
|
|
this.scrap_config_id = scrap_config_id;
|
|
this.results = {};
|
|
this.page = page;
|
|
this.web_bid = web_bid;
|
|
}
|
|
|
|
buildUrlWithKey(rawUrl, keyword) {
|
|
return rawUrl.replaceAll("{{keyword}}", keyword);
|
|
}
|
|
|
|
extractUrls() {
|
|
const keywordList = this.keywords.split(", ");
|
|
if (keywordList.length <= 0) return [];
|
|
|
|
return keywordList.map((keyword) => ({
|
|
url: this.buildUrlWithKey(this.search_url, keyword),
|
|
keyword,
|
|
}));
|
|
}
|
|
|
|
filterItemByKeyword(keyword, data) {
|
|
return data.filter((item) =>
|
|
item.name?.toLowerCase().includes(keyword.toLowerCase())
|
|
);
|
|
}
|
|
|
|
// Phần này bạn cần truyền từ bên ngoài khi khởi tạo hoặc kế thừa class:
|
|
action = async (page) => {};
|
|
getInfoItems = (data) => [];
|
|
getItemsInHtml = async (data) => [];
|
|
}
|