Re: [nodejs] Dynamic content scrape with Node.js

2,000 views
Skip to first unread message

Mark Hahn

unread,
Oct 6, 2012, 5:09:17 PM10/6/12
to nod...@googlegroups.com
1) You should consider using the node `request` to scrape instead of cURL.

2) Any scraping is only going to return what you request. This is only going to be the initially provided static content.  You are getting this from the server, not the client. There is no way to get anything from the client.

3) You will have to simulate the client and run the JS inside of your app.  The easiest way to do this is to use a "headless" client.  I suggest you use Zombie at http://zombie.labnotes.org


On Sat, Oct 6, 2012 at 1:34 PM, Narek Musakhanyan <nmus...@gmail.com> wrote:
Hey guys . I tried to scrape a data from a website using PHP cURL lib but I failed  since cURl allows you to scrape only static content . But the content I want to scrape changes via javascript(AJAX)  since cURL cant hanfle that I couldnt handle scraping via cURL . So I heard the this type of things can be done via node . Basically I need to make my node app handle this js wait for some time until AJAX is done and the pass it to php .So is it possible to do via node.js ? I dont know node and I have to start from scratch so I am here you to point out the right node framework to use to get the result I explained . 

--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nod...@googlegroups.com
To unsubscribe from this group, send email to
nodejs+un...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

rektide

unread,
Oct 6, 2012, 6:04:13 PM10/6/12
to nod...@googlegroups.com
Only just picked it up last week, but it worked well enough-- node.io. It exposes a
jQuery-esque interface for querying scraped pages. Extremely high level, "just works"
scraping module, in my book!

It also has a fairly sizable task-processing system built in, which I have not used.

Good luck:
https://github.com/chriso/node.io

-rektide

On Sat, Oct 06, 2012 at 01:34:03PM -0700, Narek Musakhanyan wrote:
> Hey guys . I tried to scrape a data from a website using PHP cURL lib but
> I failed �since cURl allows you to scrape only static content . But the
> content I want to scrape changes via javascript(AJAX) �since cURL cant
> hanfle that I couldnt handle scraping via cURL . So I heard the this type
> of things can be done via node .�Basically I need to make my node app
> handle this js wait for some time until AJAX is done and the pass it to
> php .So is it possible to do via node.js ?�I dont know node and I have to
> start from scratch so I am here you to point out the right node framework
> to use to get the result I explained .�

Dave Kuhn

unread,
Oct 6, 2012, 11:46:05 PM10/6/12
to nod...@googlegroups.com
Good suggestions so far, though i highly recommend you check out phantomjs.org. Phantom is a headless version of WebKit which is the rendering engine behind Chrome & Safari. It's the most comprehensive solution to handling AJAX content when scraping in my book since it's technically the same as interacting with a page loaded by your browser.

-- 
Dave Kuhn
Sent with Sparrow

Stephan Bardubitzki

unread,
Oct 7, 2012, 7:14:50 PM10/7/12
to nod...@googlegroups.com

Chad Engler

unread,
Oct 8, 2012, 12:53:15 PM10/8/12
to nod...@googlegroups.com

greelgorke

unread,
Oct 9, 2012, 3:25:06 AM10/9/12
to nod...@googlegroups.com
why so complicated? just find out the url of the ajax request and do it yourself with whatever lib you want...

Dave Kuhn

unread,
Oct 9, 2012, 10:26:42 AM10/9/12
to nod...@googlegroups.com
True, you can get pretty far doing that but it gets difficult when crucial bits of information are hidden inside script tags and the like. Not to mention managing cookies for ASP.NET pages amongst others is a pain in the butt. You can avoid all that hassle with a fully resolved DOM and automatic support for cookies which Phantom JS will give you.

-- 
Dave Kuhn
Sent with Sparrow

Reply all
Reply to author
Forward
0 new messages