Как нажать кнопку (тип ввода = скрыто) по Perl?

0

Я хочу использовать Perl, чтобы нажать на кнопку. Я получаю HTML-контент, а затем нажимаю кнопку. Но "input type = hidden" при проверке содержимого HTML.

Содержание 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==');">: <a class="single_like_button btn3-wrap" onclick="openFbLWin(843144, 'JTJGMiUzQSVFMyVEQyUxNSU5MSU4NCUxMSU3RiVFNyU4OCUyM1clM0QyJUM3JUIwMw==');">

Как?

  • 0
    Вам нужно либо перепроектировать JavaScript и переопределить его в Perl, либо использовать безголовый браузер, такой как Selenium или PhantomJS.
Теги:
button
onclick

1 ответ

0

Ваш лучший выбор, и в моем собственном опыте, который легко настроить и использовать, будет

WWW :: Механизировать.

Я не совсем уверен, что именно вы пытаетесь сделать - изменить значение скрытого ввода и затем отправить? Возможно, крошечный и непроверенный фрагмент будет вам полезен.

Если у вас есть более конкретные вопросы, я, вероятно, могу помочь, но документы CPAN до сих пор прояснили любой из моих вопросов, поэтому не увольняйте их слишком быстро;)

В любом случае, Mechanize достаточно хорошо документирован и полезен для этой задачи.

Редактировать: Я как-то упустил ссылку, которую вы дали. Этот код должен найти его.

Edit2: вы можете попробовать 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(). Чтобы быть совершенно честным, я должен буду указать вам документы, потому что у меня ограниченный опыт в этой конкретной проблеме, до сих пор получая ссылки и следя за ними, все, что мне нужно было сделать для тестирования моих сайтов.

Удачи в Mechanize!

  • 1
    WWW :: Mechanize не работает, кнопка запускает JavaScript.
  • 1
    Используйте WWW :: Scripter с теми же методами механизации. Он запускает javascript после установки его плагина sudo cpanm WWW :: Scripter :: Plugin :: JavaScript

Ещё вопросы

Сообщество Overcoder
Наверх
Меню