Find Jobs
Hire Freelancers

Create a dynamic script to scrape multiple websites. -- 2

$250-750 USD

In Progress
Posted over 6 years ago

$250-750 USD

Paid on delivery
Create a dynamic script in NodeJS to scrape 15+ sites using configurable json. Requirement: -Should be able to scrape lazy loading sites -Download images -Go through all pagination pages and scrape the child pages -If element is a product link "click" that link and scrape that child page -Get all below elements and retrieve correctly See below for understanding how to set it up. //Example configurable object [ site1: { url: "[login to view URL]", parent: { productList: "div.product-list", product-link: "a.product-url", product-name: ".product-info .product-title", product-image: ".product-images img[src attribute]", product-price: { list-price: ".product-price span.old-price", sale-price: ".product-price [login to view URL]" } pagination: "button.load-more-btn", product-page: { name: "form#product h1", price: { list-price: ".price .old", sale-price: ".price new" }, colors: "#options-articles li", sizes: "#options-variants li", description: ".description p", images: { main: "#images .product-image-box img[src attribute]", thumbs: "#images .thumbs .product-thumbs li" } } ... } }, site2: { Similar to above Site1 ... } ... ] ================================================================================== //Product Class Class Product() { Product(name, link, image, price, colors, sizes, description) { [login to view URL] = name; [login to view URL] = image; [login to view URL] = price; [login to view URL] = colors; [login to view URL] = sizes; [login to view URL] = description; } } =================================================================================== //Main Scraper Class Class Scraper() { Scraper(site) { [login to view URL] = site; } getName(attr) { return name value; } getLink(attr) { return link value; } getMainImage(attr) { return main value; } getThumbImages(attr) { return thumb array; } getPrice(attr) { return Price Object(list, sale); } getColor(attr) { return Colors array; } getSizes(attr) { return Sizes array; } getName(attr) { return desc value; } hasPagination() { if([login to view URL] element exist) //scrape all pagination pages to the last page } downloadImage() { if([login to view URL] element exist) //download image src = getImage(); download(src); } getProductInfo(product) { //Go to product page and scrape using "product-page" attribute from json sample. return { name: String, price { old: String new: String }, images : { main: String src, thumbs: [array] }, sizes: [array], colors: [array], description: String } } getListOfProducts() { //Use [login to view URL] to get listOfProducts ArrayOfProducts = []; for( items in listOfProducts ){ //create new product product = new Product( getProductInfo() ); //add it to list [login to view URL]( product ); } } }
Project ID: 15688261

About the project

2 proposals
Remote project
Active 6 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
2 freelancers are bidding on average $555 USD for this job
User Avatar
Hello , My Name is Sam , I am Full Stack web and app developer . I'd read the Project details extremely carefully and I am absolutely sure that I can do the It very well . Relevant Skills and Experience To Know idea about our expertise kindly visit our Profile page and check these : = iOS Android Accounting Restaurant ERP POS GPS TRACKING HRMS CRM LMS Proposed Milestones $555 USD - Create a dynamic script to scrape multiple websites
$555 USD in 10 days
5.0 (24 reviews)
5.3
5.3

About the client

Flag of UNITED STATES
San Jose, United States
5.0
3
Payment method verified
Member since Oct 26, 2017

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.