开发者

Tricking browser into calling javascript events?

开发者 https://www.devze.com 2023-03-19 21:54 出处:网络
So i\'m trying to create a web spider. I\'ve run into a website, that has some javascript, and I want to trick the browser into thinking that an event has been fired and that it must call the correspo

So i'm trying to create a web spider. I've run into a website, that has some javascript, and I want to trick the browser into thinking that an event has been fired and that it must call the corresponding javascript code to handle the event. How would I be able to do this in Perl? using the WWW::Mechanize or WWW::Scripter::Plugin::Javascript?

Also, it would be very appreciated I someone could put up 开发者_如何学Pythonan example of how to use WWW::Scripter::Plugin::Javascript.

Thanks in advance. Also if someone has a better way to word the question please go ahead and edit it


In a normal browser setup, the JavaScript is in the browser, not on the server. It's the client that executes the JavaScript.

That means you need manually figure out what the JavaScript code does and code that in Perl, or you need to load a JavaScript engine.

Here are three JavaScript engines:

  • WWW::Mechanize::Firefox
  • Win32::IE::Mechanize
  • WWW::Scripter::Plugin::JavaScript


Using WWW::Mechanize and Live Http Headers, I did a Live Http Replay.

From the replay, I copied the headers (ie Connection: keep-alive to $agent->add_header( "Connection" => "keep-alive"); ) and then copied the Post content to my $content = '..

Then $agent->post( $url_of_the_site, Content => $content);

This worked to click a link like 2 on a aspx site.

I used this code as a guide http://pastie.org/1728196/wrap

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号