Show HN: ParseHub – Extract data from dynamic websites
parsehub.com
parsehub.com
We've done this by separating the concepts of selecting and doing something to a selection. Specifically, we've created tools like click, input, hover, etc. that you can combine with any selection, and with each other. This keeps a lot of the power that you have with programming.
This also applies to the data structures that are created. So it's easy to express nested lists or even recursive lists, because of the ability to combine tools easily.
If you have any questions I'd love to answer them.
> Easily turn websites into APIs or tables of data you can download in JSON or CSV
Do you need to download, or can you call these APIs from an application?
One question about this FAQ:
> Does ParseHub respect robots.txt?
> We're working on an admin panel to give webmasters full transparency and control. We'll have more info soon.
What does that mean? I read it as ParseHub does not respect robots.txt, which as a content owner is a bit disappointing. Would you elaborate on your thinking?At the moment, ParseHub does not respect robots.txt. We do expect to add this + features for webmasters in the future, but have not had the developer cycles to do this yet.
Is a chrome extensions in the works at all?
We want to show a sample immediately as a user changes what they extract. On a static website, this is fairly easy. You simply run what the user created on the currently visible page.
However, when you involve interactivity, you can no longer do that. The major problem is idempotent operations. Imagine a click that changed the dom of a page. And now imagine running the sample on that same page. Re-running the sample may no longer work, because the click could have changed the page in such a way that the extraction no longer works (e.g. it deletes an element from the page).
To solve this issue, we actually reset a "hidden tab" to the starting state of the page you're on. This happens every time you re-run a sample. Unfortunately, it's not possible with Chrome to create such hidden tabs. We also mess with the cache to make sure that this tab can be reset really quickly, something that we couldn't find an API for with chrome.
Hope that answers your question.
Not sure if it does fit all your needs.
One of the things that has been heavily marketed by other web scrapers is "crawling" as a separate feature.
With ParseHub, all the tools easily combine, so you don't need that distinction. You can use the navigate tool to jump to another page (see our interactive navigation tutorial in the extension for the details).
And you can combine multiple navigations to go as deep in the website structure as you like. For example, say you have a forum that links to subforums that link to posts that link to users. You can easily model the structure of such a site by using a few navigation nodes (one from forum to its subforums, another from subforum to posts, etc.). The result would be a big json (or csv) dump of all the data on the forum, in the proper hierarchy.
We've really tried to make our tools as general as possible. A side effect of the navigate tool is that you can use it to get "pagination" for free as well (another feature that's been heavily marketed).
Also are you thinking on allowing it to run locally? (i.e. I have some websites that only work for my IPs)
Please note that the password will be accessible by ParseHub, since it needs to enter it on the web page.
Currently, we support local deployments only in our custom enterprise plan. That may change in the future.
Or it might be that in my keyboard layout, [ and ] requires pressing RIGHT ALT + 8 and RIGHT ALT + 9, respectively.
[1] https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perf...
PS: Indeed changing the layout to en-US fixes the problem, but that not a real solution.
That they will in the future plan on respecting robots.txt suggests they don't mean to get places content owners don't want them. On the other hand, automatic IP rotation kind of suggests they do mean to (what other purpose is there for that?).
Either way, it might be a limitation on what you might dream of using it for.
My own experiments with scraping Amazon and Google have been stopped in the water by their anti-bot traffic controls. (Amazon recently improved theirs).
The real barrier I find is the current case law in the US, which seems to be the jurisdiction of choice for many web companies. It's currently a real possibility that you will be criminally in breach of the law and suffer the cost if you blatantly and knowingly continue after being notified of their ToS. Yes google and other big companies have nothing to fear, but it's pretty much a case of "how many people are dumb enough to pick a fight with mike Tyson?"
If you target your scraping to further your own business, and impinge on someone else's business model, your in water that is currently murky. It really needs to be settled but until another lawsuit rises to the Supreme Court in the US, we won't have that, so it's just a matter of being aware that while your not trying to be an evil criminal, you may still be viewed as such by someone you scrape.
Robots.txt is a tricky balancing act. It was first conceived in 1994, and was designed for crawlers that tried to suck up all the pages on the web. ParseHub, on the other hand, is very specifically targeted by a human. A human tells ParseHub exactly which pages and which pieces of data to extract. From that point of view, ParseHub is more like a "bulk web browser" than a robot.
Here are some examples that make this line blurry. If I tell ParseHub to log into a site, visit a single page, and extract one piece of information on it, does that violate robots.txt? If yes, then your browser has been violating robots.txt for years. The screenshots of your most visited websites are updated by periodically polling those sites (and ignoring robots.txt). My browser is currently showing a picture of my gmail inbox, which is blocked by robots.txt https://mail.google.com/robots.txt
More importantly, your computer and browser already do a lot of robot-like stuff to turn your mouse click into a request that's sent to the server. You don't have to write out the full request yourself. Is that then considered a robot? If not, then why is it considered a robot when ParseHub does the same (again, assuming a single request) thing?
Furthermore, some sites don't specify rate limits in robots.txt, but still actively block IP addresses when they cross some threshold.
It is far from a perfect standard, so it makes a lot of practical sense to have the ability to rotate IPs, even if it's not appropriate to use that ability all the time.
Our goal here is to be able to distinguish between the good type and bad type of scraping and give webmasters full transparency. Obviously this is a hard problem. If you have any feedback on any of this we'd love to hear it.
ps. we've tested our infrastructure on many Alexa top 100 sites and can say with moderate confidence that it will Just Work.
pps. if you're a webmaster, having ParseHub extract data from your site is probably far preferable to the alternative. People usually hack together their own scripts if their tools can't do the job. ParseHub does very aggressive caching of content and tries to figure out the traffic patterns of the host so that we can throttle based on the traffic the host is receiving. Hacked together scripts rarely go through the trouble of doing that.
Actually I hope even more it does come to something legal and you win, because I'd love to expand and make concrete fair use rights for scraping. I like scraping, scraping is both fun and very useful for the business domain I work in, and very frustrating when content providers don't allow it by either terms of service (which may or may not be legally enforceable if you haven't agreed to them, it's unclear, but scary enough with all the CFAA over-enforcement) or technological protections.
But I think you're being disingenous about the difference between a bot and an interactive web browser, I think it's pretty straightforward to most people and will be to the courts if it comes to that.
Interestingly, the latest enhanced Amazon anti-bot protections I ran into say "To discuss automated access to Amazon data please contact...", but don't explicitly try to say "you are forbidden from automated access."
Yes as said before plus:
- Obey robots.txt to the full extend
- Name your access, i.e. label your bot
- Don't use shady tactics such as IP rotation
- Provide web site owners the option to fully block access of your bots (yes, communicate your full IP ranges)
Again - this is from a content owner who paid for his content.
In the long run it'd be nice to see some sort of "fair access" to websites introduced into law, unfortunately we don't let live in that world.
Another useful tool is http://selectorgadget.com
- Use your platform to parse dynamic website which are completely under controll to user, so no privacy issue
- Dont store data intocloud so no security issue
- create common parsing parse job and distribute it through central server / store
- such as parsing bank account from bank of america / chase / well fargo etc - parsing my stock portfolio etc
Your platform can act as job creator and people can crowd source the job script! Can create amazing private dashboard where user can see its private data at once , no cloud interfearance so no worry about security and privacy.
How are this tool (and similar tools) more efficient then the highly optimized browser engines? I am missing something here?
I use Kimono daily (scraping government expense docs), and I love how it works on static sites. If you've managed to replicate that on dynamic ones, I'll be a very happy customer.
If you have any more questions or just want to chat, feel free to shoot me an email directly at serge@parsehub.com
Doesn't see to be functioning on the Tor browser bundle by default, but maybe there are instructions of how to do that somewhere.
Will continue to test it out, and see how everything works.
I hope disabling Tor is suitable for your use case.
Will it have legal consequences? Most likely no. Will your coworkers or employees stab you with a rusty fork for getting their (most likely) favorite search engine to block them? Absolutely.
We specifically focus on handling highly dynamic or interactive websites. Our toolset gives you more flexibility over how you can extract data. For example, you can extract all the nested comment data from a reddit post, or you can extract data from maps without having to fumble around in the web inspector.
Thanks a lot for building this, I am excited to save server costs/time from scraping data for projects.
404 Not Found
The resource could not be found.
/pricingEdit: Fixed
My only issue is $79 / mo starting plan looks a bit steep for casual development (I know there is a free option) but if you want to attract more buyers i think something like GitHub's pricing would be really attractive for prospective buyers like me (something like $22 / month for 10 private projects with 10 pages / min). Just a suggestion in case you're looking for feedback.