Golang Colly Scrapper

1,000
ETH, DAI, USDT
+53
0 days (till Mar 10th, 2024)

Price is negotiable

 

Project Description:

Develop a high-performance crawler capable of traversing millions of domains quickly, extracting links and navigating up to a specified depth for each domain. Speed is essential.

Technologies:

  • Programming Language: Golang, with no specific preference for libraries as long as they are among the fastest and best suited for the project's needs.
  • Database: Redis, used as a queue to temporarily store the results of each crawled page in JSON format.

Key Features:

  • Retrieve a list of domains via an API returning domain names in JSON format. The frequency of checking for new domains available should be configurable (in minutes or seconds).
  • For each domain, extract links (CSS, JS, FORM, LINK, JSON) up to a specified crawl depth and a maximum number of pages per host. Configurations related to depth and maximum pages should be easily adjustable in a configuration file.
  • Identify for each host its IP address, TLD (e.g., .com), the port used (e.g., 80), and for each page, capture the source, URL, navigation depth, and presumed file type (based on content-type or extension).
  • Manage a blacklist for extensions and content-types, avoid duplicates through URL normalization, and ensure that the source code size of pages does not exceed a predefined limit (configurable).
  • Save crawl results to Redis in JSON format in batches, ready to be integrated into Elasticsearch. The number of documents per batch should be configurable.
  • The configuration of the number of workers should be automatic based on server capacity but adjustable via a configuration file for maximum flexibility. The number of requests per domain should be limited to avoid DDOS.
  • Plan rigorous memory leak management to ensure long-term performance.
  • A logging and performance monitoring system using Prometheus.
  • Handling of redirects, crawling both http and https. If http://amazon.com does not work or redirects, try https://amazon.com; otherwise, skip.
  • Ignore the robots.txt.

Other Requirements:

  • The HTTP response header must be accessible at the beginning of the source code for easy data processing.
  • Ensure clear documentation on how to modify configurations for easy and rapid adjustments as needed.
  • For each page, make an md5 hash of the source code after removing spaces.
  • Retrieve links from these specified attributes and tags.

List of attributes to handle:

  • href
  • src
  • data-src
  • data-href
  • data-url
  • action

List of tags to handle:

  • a
  • link
  • script
  • img
  • iframe
  • frame
  • source
  • form

Blacklist extensions:

  • .pdf
  • .mp3
  • .avi
  • .mp4
  • .ogg
  • .zip
  • .rar
  • .7z
  • .exe
  • .apk
  • .iso
  • .img
  • .jpg
  • .png
  • .gif
  • .bmp
  • .ico
  • .svg
  • .xml
  • .woff
  • .woff2
  • .ttf
  • .eot
  • .otf
  • .csv
  • .xls
  • .xlsx
  • .doc
  • .docx
  • .ppt
  • .pptx
  • .odt
  • .ods
  • .odp
  • .odg
  • .odf

Expected JSON on Redis per page: { "md5": "3ab3e9f9fcf1a62edfca58f00f1a4a8c", "domain": "example.com", "host": "subdomain.example.com", "url": "http://www.subdomain.example.com/page1", "tld": "com", "ip": "192.0.2.1", "port": 80, "depth": 1, "rank": 12345, "source": "HTTP/2 200 <html><head>...</head><body>...</body></html>", "filetype": "html" }

1,000
ETH, DAI, USDT
+53
0 days (till Mar 10th, 2024)

More Jobs like this

Show more
Senior developer specializing in Smart Contracts and Next.js

## Technical Co-Founder / Founding Engineer — MilePact   MilePact is building a freelance marketplace where trust is *contract-grade from day one*. Most platforms start with profiles and messaging; we’re starting with the hardest part:...

Monitoring Bot – EVM Multi-Chain Transaction Analyzer

We need a reliable monitoring bot that tracks incoming fee transactions (commissions) to one or multiple specified wallets on EVM-compatible blockchains. The bot filters these transactions according to configurable rules, analyzes the buyer wallet and...

Backend Development for Hotel Management System

I am looking for an experienced backend developer to build the backend infrastructure for a Hotel Management System. The frontend application has already been completed, and I need a skilled developer to design, develop, and...

Mobile Game Video Recorder — Remote, Flexible and Ongoing

Are you interested in mobile games and curious about how the mobile gaming industry works? We are building a market intelligence platform used to analyze mobile games, trends and gameplay. We are looking for reliable...

Tech Affiliate Partner (High Commission)

"We are looking for passionate affiliate partners to promote Nexdigi. If you have experience in driving traffic, social media marketing, or influencer outreach, we want you on our team. We offer competitive commissions ranging from...

Technical Talent Acquisition Specialist

Key Responsibilities Manage end-to-end recruitment for technical and IT roles Source candidates using LinkedIn, job boards, referrals, and internal databases Conduct screening interviews to assess technical experience, skills, and motivation Coordinate interviews between candidates and...

graphic Design

Graphic Design for a logo, based on specific style and preferences. 

nati

We are currently seeking a dedicated and detail-oriented individual to join our team as a Time Farm Specialist. In this role, you will be responsible for overseeing the management and cultivation of time resources within...

Need Flutter Developer

We are looking for a skilled Flutter Developer to help us update, refine, and maintain our existing mobile application. This role is focused on implementing targeted fixes, UI/UX tweaks, and functional updates to ensure a...

Lead Generation (APAC) VC, Angel & Crypto Investors

We are looking for an experienced freelancer to research and build a qualified investor pipeline for a cryptocurrency exchange platform seeking strategic investment and partnership opportunities in the APAC region.  The ideal candidate should have...

Senior developer specializing in Smart Contracts and Next.js

## Technical Co-Founder / Founding Engineer — MilePact   MilePact is building a freelance marketplace where trust is *contract-grade from day one*. Most platforms start with profiles and messaging; we’re starting with the hardest part:...

Monitoring Bot – EVM Multi-Chain Transaction Analyzer

We need a reliable monitoring bot that tracks incoming fee transactions (commissions) to one or multiple specified wallets on EVM-compatible blockchains. The bot filters these transactions according to configurable rules, analyzes the buyer wallet and...

Backend Development for Hotel Management System

I am looking for an experienced backend developer to build the backend infrastructure for a Hotel Management System. The frontend application has already been completed, and I need a skilled developer to design, develop, and...

Mobile Game Video Recorder — Remote, Flexible and Ongoing

Are you interested in mobile games and curious about how the mobile gaming industry works? We are building a market intelligence platform used to analyze mobile games, trends and gameplay. We are looking for reliable...

Tech Affiliate Partner (High Commission)

"We are looking for passionate affiliate partners to promote Nexdigi. If you have experience in driving traffic, social media marketing, or influencer outreach, we want you on our team. We offer competitive commissions ranging from...

Technical Talent Acquisition Specialist

Key Responsibilities Manage end-to-end recruitment for technical and IT roles Source candidates using LinkedIn, job boards, referrals, and internal databases Conduct screening interviews to assess technical experience, skills, and motivation Coordinate interviews between candidates and...

graphic Design

Graphic Design for a logo, based on specific style and preferences. 

nati

We are currently seeking a dedicated and detail-oriented individual to join our team as a Time Farm Specialist. In this role, you will be responsible for overseeing the management and cultivation of time resources within...

Need Flutter Developer

We are looking for a skilled Flutter Developer to help us update, refine, and maintain our existing mobile application. This role is focused on implementing targeted fixes, UI/UX tweaks, and functional updates to ensure a...

Lead Generation (APAC) VC, Angel & Crypto Investors

We are looking for an experienced freelancer to research and build a qualified investor pipeline for a cryptocurrency exchange platform seeking strategic investment and partnership opportunities in the APAC region.  The ideal candidate should have...