2011-02-02 9 views
1

オーストラリア統計局のウェブページから職業コードを要求する際にcurlを使用して自動化しようとしています。 CurlでPOSTリクエストを行うと「検索インデックスが存在しません」というエラーが表示されます。問題は、入力していない2つの入力があるため、失敗しているということです。Curl POSTフォームリクエストで入力値が隠されています

curl --data "searchcontent=&helpdocid=[docid]&searchtext=121315&submit=Go" http://www.ausstats.abs.gov.au/ausstats/searchclass.nsf/(Searchattmnt)?openagent 

ABSサイトから該当するコードはこれです:

<!-- Start Search Content --> 
<div id="titlemain"> Search Results</div><div id="middle"></div> 
<form name="attmnt" method="post" action="http://www.ausstats.abs.gov.au/ausstats/searchclass.NSF/(Searchattmnt)?openagent"> 
<input type="hidden" name="searchcontent" value=""> 
<input type="hidden" name="helpdocid" value="[docid]"> 
<div id="content"> 
<h3>New Search :</h3> 
<input type="text" name="searchtext" size =60 MAXLENGTH="255" value=""> 
<INPUT VALUE="Go" TYPE="submit"> 
</form> 
</div> 
<!-- End Search Content --> 

は、他の何かが役立つならば、私に教えてください

カール要求:私はこの上の任意の支援をお願い申し上げます。私はこれを動作させることができない場合、いくつかの深刻なデータエントリのバレルを見つめている。

EDIT:混乱を避けるために、カールリクエストで入力ミスを修正しました。

+0

Wiresharkのようなツールを使ってWebページからPOSTをキャプチャしようとしましたか?それはHTMLを解読しようとするよりも正確かもしれません。 –

+0

ここでタイプミスかもしれませんが、&sumbitは&submit(必要であれば)です。また、これらの隠し要素の値は、実際にはユーザーアクションに基づいてjavascriptで設定されることがあります。 –

+0

@Justin Morgan - いいえ、私はそれを試してみませんか? @Bill N - それはそれをコピーするタイプミスでした。そうであれば、私はカールを使ってこの投稿を提出することはできますか、それともそれを防ぐのでしょうか? –

答えて

1

私は@Justinモルガンの提案を使用して、私は、要求を行っている間のwiresharkを実行しました。これは私に必要な値を私に与えました。

curl \ 
-d "searchcontent=1220.0Data%2BCubes-SuperTable25.06.091" \ 
-d "helpdocid=17441354B1295875CA2571E6000AE9A0" \ 
-d "searchtext=121318" \ 
http://www.ausstats.abs.gov.au/ausstats/searchclass.NSF/(Searchattmnt)?openagent 
1

問題はカールの--dataパラメータは、あなたがそれを提供とおりにテキストを送信していることですが、あなたは、URLエンコード文字(具体的には、[]文字)を予約されていないので、サーバは一致することができませんhelpdocidフィールドの値を正しく入力してください。

メモ:投稿されたデータに「submit = Go」フィールドを含めないでください。名前と値の両方を持つフィールドのみが送信されます。

はこれを試してみてください:

curl --data "searchcontent=&helpdocid=%5Bdocid%5D&searchtext=121315" http://www.ausstats.abs.gov.au/ausstats/searchclass.nsf/(Searchattmnt)?openagent 
+0

私はリクエストを実行している間に@Justin Morganの提案を使用し、wiresharkを実行しました。これは私に必要な値を私に与えました。最後にこれは私が使用したカールのリクエストでした: 'curl --data" searchcontent = 1220.0Data%2BCubes-SuperTable25.06.091&helpdocid = 17441354B1295875CA2571E6000AE9A0&searchtext = 121318 "http://www.ausstats.abs.gov.au /ausstats/searchclass.NSF/(Searchattmnt)?openagent' –

0

Mozillaがプラグインlivehttpheaderサーバーへの投稿に使用されるURLエンコードのテキスト文字列を示しています。最後に、これは私が働いていた使用カール要求をしました。

関連する問題