scaling-to-distributed-crawling
PeARS-orchard
Our great sponsors
scaling-to-distributed-crawling | PeARS-orchard | |
---|---|---|
5 | 1 | |
36 | 35 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | 23 days ago | |
HTML | HTML | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scaling-to-distributed-crawling
-
DOs and DON'Ts of Web Scraping
We published a repository and blog post about distributed crawling in Python. It is a bit more complicated than what we've seen so far. It uses external software (Celery for asynchronous task queue and Redis as the database).
- Mastering Web Scraping in Python: Scaling to Distributed Crawling - ZenRows
- Mastering Web Scraping in Python: Scaling to Distributed Crawling – ZenRows
-
Mastering Web Scraping in Python: Scaling to Distributed Crawling
We will start to separate concepts before the project grows. We already have two files: tasks.py and main.py. We will create another two to host crawler-related functions (crawler.py) and database access (repo.py). Please look at the snippet below for the repo file, it is not complete, but you get the idea. There is a GitHub repository with the final content in case you want to check it.
PeARS-orchard
-
Welcome to mwmbl, the free, open-source and non-profit search engine
> We now have a distributed crawler that runs on our volunteers' machines! If you have Firefox you can help out by installing our extension.
This is a very interesting idea that other search engines have tried before. Actually, the Brave search engine is built over Cliqz[6] that implemented this same idea but *without* the user's consent.
Copy pasting from an old comment I made about this "human web" crawler idea:
Both PeARS[1] and Cliqz[2] tried to do that. Both got direct support from Mozilla[3][4] but it looks like neither really kicked off.
PeARS was meant to be installed voluntarily by users who would then choose to share their indexes only to those they personally trusted, so the idea is very privacy conscious but also very hard to scale.
Cliqz, on the other hand, apparently tried to work around that issue by having their add-on bundled by default in some Firefox installations[5] which was obviously very controversial because of its privacy and user consent implications.
I still think the idea has potential, though, even if it's in a more limited scope.
[1] https://github.com/PeARSearch/PeARS-orchard
[2] https://cliqz.com/en/whycliqz/human-web
[3] https://blog.mozilla.org/press-uk/2016/06/22/mozilla-gives-3...
[4] https://blog.mozilla.org/press-uk/2016/08/23/mozilla-makes-s...
[5] https://www.zdnet.com/article/firefox-tests-cliqz-engine-whi...
[6] https://www.theregister.com/2021/03/03/brave_buys_a_search_e...
What are some alternatives?
celery - Distributed Task Queue (development branch)
storm-crawler - A scalable, mature and versatile web crawler based on Apache Storm
colly - Elegant Scraper and Crawler Framework for Golang
Starthome - Starthome is a basic minimalistic startpage/homepage.
Scrapy - Scrapy, a fast high-level web crawling & scraping framework for Python.
massearcher - Search multiple search engines in chrome.
Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
parquet-floor - A lightweight Java library that facilitates reading and writing Apache Parquet files without Hadoop dependencies
newspaper - newspaper3k is a news, full-text, and article metadata extraction in Python 3. Advanced docs:
mwmbl - An open source, non-profit search engine implemented in python
Yacy - Distributed Peer-to-Peer Web Search Engine and Intranet Search Appliance