簡體   English   中英

為什么我的WWW :: Mechanize不提交PayPal表單工作?

[英]Why doesn't my WWW::Mechanize submit a PayPal form work?

我嘗試過的任何事情都無法使我的代碼正確提交。 有人能弄清楚嗎?

#!/usr/bin/perl

use WWW::Mechanize;


my $user = 'cowsaremyfriends@gmail.com';
my $pass  = 'hackswipe';
# Test account; don't worry


my $browser = WWW::Mechanize->new();
$browser->get("https://www.paypal.com/");
$browser->form_with_fields("login_email", "login_password");
$browser->field("login_email", $user);
$browser->field("login_password", $pass);
$browser->submit_form();
$browser->get("https://www.paypal.com/us/cgi-bin/webscr?cmd=_profile-api-add-direct-access");
##### Help here ---> Trying to submit form with default option selected #####
my $html = $browser->content;

print $html;

它對我有用,但是在調試Web爬網程序等時,您應該注意HTTP事務。 這真的很容易添加,因為WWW :: MechanizeLWP :: UserAgent子類:

use WWW::Mechanize;

my $browser = WWW::Mechanize->new();

# See LWP::Debug
$browser->add_handler("request_send",  sub { shift->dump; return });
$browser->add_handler("response_done", sub { shift->dump; return });

現在,您可以看到發送的內容以及PayPal發送回的內容。

通常,您還可以使用各種HTTP嗅探工具,但是這些工具僅適用於以純文本發送的內容,因此您在這里很不走運。

但是,在這種情況下,您可以使用PayPal。 他們知道您正在使用腳本。 我得到的部分輸出是:

<h2>Request API Credentials</h2>
</div>
<div id="messageBox"></div>
<div id="main"><div class="layout1"><form action="https://www.paypal.com/us/cgi-bin/webscr?dispatch=5885d80a13c0db1f8e263663d3faee8dc18bca4c6f47e633b393e284a5f8a8f8" class="">
<input type="hidden" name="cmd" value="_profile-api-add-direct-access"><input type="hidden" name="api_flow_origin" value=""><input type="hidden" name="show_switch" value="1"><input type="hidden" name="auth_type" value="ssl"><input type="hidden" name="api_username" value=""><input type="hidden" name="program_name" value=""><input type="hidden" name="program_id" value=""><input type="hidden" name="partner_name" value=""><input type="hidden" name="partner_id" value=""><input type="hidden" name="partner_code" value=""><p>API credentials consist of three elements:</p>
<ul>
<li>An API username</li>
<li>An API password</li>
<li>Either an API signature or an API SSL client-side certificate</li>
</ul>
<p>If you’re using a shopping cart or solution provider, ask whether you need an API signature or a certificate.</p>

如果您想通過某個程序與PayPal進行交互,則需要注冊開發人員訪問權限

我們不知道到底是什么問題。 您閱讀常見問題了嗎?

perldoc WWW::Mechanize::FAQ

它提供了有關如何調試Mech問題的建議。 我首先要問的是表單是否使用JavaScript。 我敢肯定,貝寶的頁面正在這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM