80 legs: Web Crawler as a Service
80legs.com
80legs.com
So, please review our startup. :)
We are launching the beta today to a handful of users and will be letting in more and more users over time.
One other note: We don't just offer crawling. Our model is actually to allow you to analyze the web content that you discover. Using your own custom code that you push into 80legs, you can do sophisticated text processing, image processing, look inside PDFs, etc.
Hope this really works out well for all of you.
p.s. Just in case you are curious, i got a reference note about your application from someone who was following Web 2.0 Expo.
However my initial feedback relates to clarity.. on the About page you say 'crawl 2bn pages' then 'pay $2 per million pages crawled' and don't actually say that - as I understand it - customers set up custom searches matching a regexp and only pay for the hits (crawls) that match.
My immediate reaction on seeing '2bn'/'$2 per million' was to firstly think 'wtf, $4k per day then?' and secondly 'I hope that's an American not a British billion'. (Though we seem to have adopted yours, now.)
It's really just a wording/clarity thing though, and I might be alone in this.
You certainly don't need to crawl two billion (2,000,000,000) pages per day. In fact, that's our total estimated capacity right now.
2000000 * 40KB(Average compressed) / (10241024) 0.1 = 7.6 $. That's alone the cost to transfer it to your datacenter. I can'r reliably access the data on remote clients.
I guess the 2$ pricing tag is just marketing blah blha
byte[] processPage ( String url, byte[] pageContents, Object userData); (EDIT: remove code tag that didn't work...)
We run your function on the contents of the pages/images/objects you want to analyze and give you back your results from the millions or billions of pages you want to analyze.
The results from the processPage() function are completely free form. You serialize your results into a byte array and that's what you get back (except you get it back for all of your urls).
Now, since the processPage() function is free form, you can just turn around and "return pageContents;" from your function. That will give you all of the page contents from your crawl. That's not an ideal case for us, but we can handle it. We might eventually charge a small bandwidth or storage cost for this type of usage, but we do not intend to do so for our normal use case.
The bigger charge to the customer if they try to pull back all of the contents will be their local bandwidth charge. They would need to pull all of these pages' contents to their own servers. That will cost them quite a lot of bandwidth assuming they don't have their own fat pipe.
In summary, $2/million-pages-crawled is our real price and is not just marketing.
How do you (and/or Plura) deal with the problem of running code on other people's machines? How do you know that the data being sent back is valid, or that a competitor can't start a node and reverse-engineer your code? This may be less of an issue than I imagine, but I'm sure it's something you've thought about so I'd be interested in hearing your thoughts.
First, Plura actually runs the processPage() function in the restricted java sandbox so there is no way to actually see any data on the user's computer or do anything bad to their computer. Also, the code goes through a short verification process before it is deployed.
For the results, we do have a reasonably sophisticated validation process as well. For someone to change results from one node, they would have to do quite a bit of work.
I didn't look very hard to find it, but is there a list of places/apps that install this?
EDIT: wow, never mind, I totally misunderstood their model:
Reminds me of old ways in doing cloud computing:
EC2 : http://www.nd.edu/~parasite/
S3 : http://isec.pl/papers/juggling_with_packets.txt
; )
Most Plura apps/websites give users optin/optout capabilities. Rather than anything ill-intentioned, the actual model is really that Plura gives application developers a means of offering their application at a discount (or free) to users that don't mind trading their excess computer resources for the app. For those that don't want Plura+free, the application developer can give them other options (pay, ads, whatever).
Once the users really understand it, they are almost always happy that the developer has a new means of monetization so that the developer will continue to improve the software they are using.
BTW, this all runs in a secure java sandbox where nothing can actually see the users data, disk, what programs are running, or anything else about the computer. Plura has gone to great lengths to try to sanitize the entire process and be good guys.
Alternatively, you can use one of our affiliates to raise money for charity (not related to our company) http://donatebot.com
What User-Agent do you use?
Do you crawl non-textual resources?
Do you save all headers from the crawled responses?
Do you perform any processing on the returned content (like de-chunking or de-compressing) or can it be retrieved verbatim?
If two customers request the same URL/site be crawled, are their requests merged so the site is only crawled once?
Do you save the exact time of the request (not trusting the returned 'Date' header)?