Я пытаюсь использовать perl для автоматизации входа на сайт, а затем нажмите ссылку, чтобы получить определенные данные из моей учетной записи. вот точные детали:Проблемы с передачей данных формы с помощью Perl LWP lib
- пойти www.bwsc.org и иметь его заполнить информацию счета (номер счета и номер счетчика)
- представить форму, которая возьмет меня к базовой учетной записи страницы
- следуйте по одной из ссылок на этой странице, чтобы получить конкретную информацию об учетной записи.
Я продолжаю застревать на первых шагах. Возможно, я собираюсь сделать это неправильно, но я подумал, что могу использовать LLP-библиотеку perl для доступа к данным формы и заполнения информации. В качестве первого шага, я посмотрел на соответствующий исходный HTML от www.bwsc.org, чтобы получить информацию формы:.
<div id="logonbox_SB">
<form action="/ACCOUNTS/security_main.asp" method="get">
<div id="FS_1">
<label for="AcctNum" id="acctnum_label">Account Number</label>
<input name="AcctNum" type="text" class="formtext1" size="9" maxlength="9" />
</div>
<div id="FS_2">
<label for="MtrNum" id="accsnum_label">Access Number</label>
<input name="MtrNum" type="text" class="formtext2" size="4" maxlength="4" />
</div>
<input type="image" value="Submit" name="search" class="boxsubmitbtn" src="/images/buttons/login.gif" alt="Login">
</form>
<p><a href="/ACCOUNTS/accounts.asp">Need help logging in?</a> </p>
</div><!--end logonbox_SB-->
Текстовые поля AcctNum и MtrNum являются те, которые мне нужно заполнить Ниже приведен код Я написал, чтобы попытаться сделать это:
#! /usr/bin/perl
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
my ($ua, $request, $response, $content);
$ua = LWP::UserAgent->new;
$request = new HTTP::Request('GET','http://www.bwsc.org/ACCOUNTS/security_main.asp?AcctNum=XXX&MtrNum=XXX');
$response = $ua->request($request);
my $content = $response->content;
open(FILE, ">out.txt");
print FILE $content;
close(FILE);
Если я смотрю на выходной файл out.txt (который я считаю, должен содержать HTML-ответ), он просто дает мне HTML для страницы ошибки говорит, что я не предоставил действительная учетная информация. Я не совсем уверен, что я делаю неправильно. Я пробовал различные способы передачи параметров, как это было предложено в документах cpan, но не повезло.
Некоторые вещи, чтобы отметить:
- форма в вопросе не имеет атрибута имя/ID (не уверен, если это имеет значение)
- форма использует метод GET
- Выездное .txt-файл, содержащий ответ html, не совпадает с html, который я получаю, когда я намеренно неправильно вхожу в систему с помощью браузера. Я имею в виду, что если я использую браузер и не вхожу в учетную информацию, страница с ошибкой в браузере не совпадает с страницей ошибки, которую я получаю при использовании этого скрипта.
Вам необходимо удалить данные своей учетной записи из этого сообщения прямо сейчас! – tangent
Кроме того, свяжитесь с владельцами сайта, чтобы удалить данные учетной записи из истории изменений. – Brilliand
Как иронично, 'security_main.asp' с конфиденциальными данными в строке запроса. – ThisSuitIsBlackNot