53 karma · joined May 26, 2013
Some other TLDs gives access through Centralized Zone Data Service [2]. Some deny access, like ca.zone.
But I get what you mean, it was really publicly available.
[1] https://www.verisign.com/en_US/channel-resources/domain-regi...
For every website we crawl we implement a custom discovery/update logic.
Discovery can be, for example, crawl a specific date range, seq number, postal code.... We usually seed discovery based on the actual data we have, like highest_company_number + 1000, so we get the newly registered companies.
Update is to update a single document. Like crawl document for company number 1234. We generate a Request [2] to crawl only that document.
[1] https://doc.scrapy.org/en/latest/topics/signals.html
[2] https://doc.scrapy.org/en/latest/topics/request-response.htm...
All data (zip files, pdf, html, xml, json) we collect are stored as-is (/path/to/<dataset name>/<unique key>/<timestamp>) and processed later using a Spark pipeline. lxml.html is WAY faster than beautifulsoup and less prone to exception.
We have cronjob (cron + jenkins) that trigger dataset update and discovery. For example, we scrape corporate registry, so everyday we update the 20k oldest companies version. We also implement "discovery" logic in all of our crawlers so they can find new data (ex.: newly registered company). We use Redis to send task (update / discovery) to our crawlers.
I do document parsing/data grooming so it's a lot of tweaking/fix as the client do the Q&A on the data.
Actually I overbook myself and offload some work to reliable part-time employees (the client is happy to known that not only me but other people are working on the project).