如何点击按钮(输入类型=隐藏)通过Perl?
我想用Perl来点击一个按钮。我得到HTML内容,然后找到点击按钮。 但是当我检查HTML内容时,“input type = hidden”。如何点击按钮(输入类型=隐藏)通过Perl?
HTML内容:
<div class="content freepts_cont">
<input type="hidden" id="network" value="5"/>
<div class="like_notification"></div>
Firebug的内容:
<div class="content freepts_cont">
<input id="network" type="hidden" value="5">
<div class="like_notification"></div>
<div id="site-links-list">
<center>
<div id="L_c3cbf051418f1ec690c445ad843144" class="yt-video-content" style="width: 520px;">
<div class="likedPagesSingle" style="width:400px;border:1px solid #E8E8E8;padding-top:15px; min-height:250px;">
<center>
<center>
<div class="fb_page_title">
<div style="width:100px; height:100px; overflow:hidden;">
<a style="display:block; width:100px; heigt:100px; overflow:hidden;" href="#">
<img style="width:100%; height:auto;" title="Night Thriller" alt="Night Thriller" src="/images/layout/youtube_page_view.png">
</a>
</div>
<a class="single_like_button btn3-wrap" onclick="openFbLWin(843144, 'JTJGMiUzQSVFMyVEQyUxNSU5MSU4NCUxMSU3RiVFNyU4OCUyM1clM0QyJUM3JUIwMw==');">
</center>
<div class="mtop10" style="margin-bottom:10px;">
<div class="mtop10" style="margin-bottom:10px;">
</div>
</div>
我想用Perl点击: <a class="single_like_button btn3-wrap" onclick="openFbLWin(843144, 'JTJGMiUzQSVFMyVEQyUxNSU5MSU4NCUxMSU3RiVFNyU4OCUyM1clM0QyJUM3JUIwMw==');">
如何?
你最好的选择,并以我个人的经验很容易设置和使用将是
我不完全确定你到底想要做什么 - 更改隐藏输入的值,然后提交?也许这个小而未经测试的代码片段将对你有用。
如果你有更具体的问题,我也可能会帮助,但CPAN文档迄今已清理了我的任何问题,所以不要太快解雇他们;)
无论哪种方式,机械化是相当有据可查,并且对这项任务有用。
编辑:我不知何故忽略了你给的链接。此代码应该找到它。
编辑2:你可能想尝试WWW::Mechanize::Firefox,这似乎能够处理JavaScript。我会用它,但我已经习惯了机械化。也许其他人可以提出更好的选择。
my $mech = WWW::Mechanize->new();
$mech->follow_link(class => 'single_like_button btn3-wrap');
# alternatively, get the link object, see what you can do with that
my $link = $mech->find_link(class => 'single_like_button btn3-wrap');
# or, if it is not the only one of class
my @links = $mech->find_links(class => 'single_like_button btn3-wrap');
# now somehow get the link out of the list
这可能行不通,因为它似乎并没有真正提供链接。在这种情况下,请尝试使用click()或click_button()。说实话,我不得不向你指出那里的文档,因为我对这个特定问题的经验有限,到目前为止,获得链接并遵循它们是我测试我的网站所需要做的。
与机械化祝你好运!
WWW :: Mechanize不起作用,该按钮会触发JavaScript。 – Quentin 2014-11-01 19:29:25
您需要对JavaScript进行反向工程,然后用Perl重新实现,或者使用Selenium或PhantomJS等无头浏览器。 – Quentin 2014-11-01 19:31:07