問題タブ [lwp-useragent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1418 参照

perl - LWP::UserAgent を使用した画像の破損

次のスクリプトはループで実行され、 を使用して画像を取得し、 を使用しLWP::UserAgentてサイズを変更しますImage::Magick

Image::Magickダウンロードしたイメージを読み取るときに、次のエラーが発生します。

LWP でダウンロードした画像を自分のコンピューターにダウンロードし、フォト エディターで開き、.jpg ファイルとして保存し、アップロードして読み取ろうとするとImage::Magick、すべて問題ありません。これにより、画像が正しく保存されていないと思われます。

LWP::UserAgentクライアントがデータを要求していると思わない限り、接続しているサーバーはダウンロードを許可しないため、使用する必要があります。

0 投票する
1 に答える
200 参照

xml - GetRss.pl 行 25 の未定義の値に対してメソッド「rs_namespace_uri」を呼び出せません

オンライン ニュース ペーパーの RSS フィードから特殊な用語を抽出する作業を行っています。URL のダウンロードには XML::RSS::Parser と LWP::UserAgent を使用しています。cpan からのコピーペーストを実質的に使用しているにもかかわらず、動作させることができません: http://search.cpan.org/~tima/XML-RSS-Parser-1.02/Parser.pm# $feed-%3Erss_namespace_uri . 私はいつも同じエラーを受け取ります:「GetRss.pl 行 25 の未定義の値でメソッド "rss_namespace_uri" を呼び出せません」。私はすべてを試しました... LWP::Simple と XML::RSS::Parser で同じ問題があり、FileHandle を使用して管理しましたが、複数のサイトからフィードを取得し、配列。これは私のコードです:

ありがとうございました

0 投票する
2 に答える
2336 参照

perl - LWP::UserAgent がこのサイトを完全に取得できないのはなぜですか?

最初から数行だけ出力します。

0 投票する
1 に答える
3081 参照

perl - URLにGET変数を含むPOSTリクエストの送信(LWP :: UserAgentを使用)

GET変数(クエリ文字列)も含むURLにPOSTリクエストを送信する必要があります。

私は次のことを試しました(これは最もsimepl /論理的な方法のように見えます)が、機能しません:

my.domain / index.plはリクエストを受信しますが、クエリ文字列「?login=yes」を削除するとすぐにリクエストは正しく機能します。

0 投票する
1 に答える
481 参照

perl - getstoreなしで.gzファイルをダウンロードするPerl最速の方法

perl を使用して .gz ファイルをダウンロードし、ファイルに保存せずにスクリプト自体に抽出することに興味があります。Getstore はファイルをディスクに保存します。また、perl LWP::Simple または LWP::Useragent を使用してプロキシ経由で .gz ファイルをダウンロードすることは可能ですか。

ありがとう!

0 投票する
2 に答える
1204 参照

perl - LWP::UserAgent を使用して HTTP ヘッダー値をテストする方法

回答が得られ次第、さらに質問を投稿するかもしれませんが、ここに行きます!

私は現在、私の大学が SAT スコア データを含むファイルを自動的にダウンロードするために使用していた Perl スクリプトのトラブルシューティングを試みています。

アイデアは、特定のアカウントの電子メールを読むことです。サイクル番号 (URL で使用されます) を引き出します。複数の URL をつなぎ合わせる。を使用LWP::UserAgentしてサーバーからファイルを取得し、それらに対して他の Perl マジックを実行します。

私の調査では、手動で URL を入力する (したがって、ユーザーが実行するスクリプトを制限し、サイクル番号を毎回置き換える) ことが実際に機能することがわかりました。

返された応答オブジェクトを調べると、(まず第一に) 失敗した要求に次の行が欠落していることに気付きました。

ただし、成功するリクエストには存在します。

失敗したリクエストでこの行が欠落している理由を教えてくれる人がいれば、感謝しますが、それは私が求めていることではありません.

私の質問は、それが拒否された理由を確認するためのさらなる調査に関するものです。

のドキュメントで、LWP::UserAgentこれに気づきました:

LWP が内部的に生成するエラー応答には、"Client-Warning" ヘッダーが値 "Internal response" に設定されます。これらの内部応答をリモート サーバーが実際に生成する応答と区別する必要がある場合は、このヘッダー値をテストする必要があります。

私の質問:実際にそのヘッダー値をどのようにテストしますか? (無知なことをお許しください。私は大学の IT 部門のインターンです)

0 投票する
1 に答える
4187 参照

perl - LWP::UserAgent の使用中に Cookie が保存されない

Cookie を使用しようとしてLWP::UserAgentいますが、テキスト ファイルに保存されません。私は何を間違っていますか?

ダンプされたデータは次のようになります。

そしてlwp_cookies.txt、これがあります:

私は Strawberry Perl で Win を使用しています。

0 投票する
1 に答える
561 参照

asp.net-mvc - WWW::Mechanize または LWP::UserAgent で ASP-NET フォームを POST できない

当社が正規代理店である製品カタログの抽出を自動化する必要があります。その会社は Ingram Micro で、彼らは巨大ですが、カタログと在庫を照会する (Web サービスのような) 簡単な方法を提供していません。オンライン ストア データベース用です。

最近、彼らは Web サイトを変更しましたが、Perl スクリプトが正常にログインするのを妨げていることを検出できないものがあります。ブラウザで直接試行すると、ログインに成功しますが、Perl からフォームを送信しようとすると、ログイン ページが再度表示されます (ログインに失敗した場合と同様)。

彼らのサイトは AspNet で作成されており、ASP によって生成された非表示のフォーム フィールドでいっぱいです。最初は、ログイン ページを取得し、すべての非表示フィールドの値を読み取り、それらをユーザー名とパスワードとともに POST ログイン要求に含めるために独自の「スパイダー」を実行していましたが、この問題の後、WWW の使用を開始しました。 :リクエストを実行するように機械化し、そのタスクを正しく自動化します。

しかし、WWW::Mechanize や LWP::UserAgent は正常にログインできません。

ブラウザとサーバーの間の正確な HTTP 会話を調べてみたり、正しい POST コンテンツを含む自動化されたリクエストに同じ正確なヘッダーを含めたり、Perl からのログインに失敗したり、Perl からのログインに成功したりしましたブラウザ。

私は本当に絶望的です.問題を検出することができず、このカタログの更新なしではストアを実行できません.

ログインページはこちらからご覧いただけます: https://www.imstores.com/ingrammicromx/

誰かが同様の問題を経験したことがある場合、または誰かがそのページを見て、ブラウザが WWW::Mechanize リクエストと異なる理由を検出できる場合は、お知らせください。

ありがとうございました。

0 投票する
2 に答える
766 参照

windows - WWW::Mechanize のランダム エラー: プロトコル スキーム 'https' はサポートされていません (LWP::Protocol::https がインストールされていません)

私は WWW::Mechanize を使用して、製品カタログを Web サイトからデータベース (Ingram Micro) に取り込みます。すべてSSL経由です。

次のようなランダムなエラーが表示されます。

Protocol scheme 'https' is not supported (LWP::Protocol::https not installed)

...しかし、LWP::Protocol::httpsインストールされています。実際、ほとんどの場合、すべてが正常に機能します。私が考えることができる唯一のことは、これは Windows でスレッドを使用することと関係があるということです (プロセスは、Ingram の Web サイトが各ページを配信するのにかかる長い時間を補うために、ジョブを 25 のスレッドに分割します)。単一のスレッドを使用する場合、(これまでのところ) エラーは発生していません。

エラーは毎回発生するわけではなく、通常は 1 つのスレッドでのみ発生し、残りはそれを受け取らなくても機能します。

しかし、これは本当に変です。ここにいる誰かが以前にこのようなことを見たことがあるかどうか、または誰かがなぜこれが起こるのかについて何か考えがあるかどうか知りたい.

ありがとう、

フランシスコ

編集:誰かが不思議に思う場合に備えて、私は Windows 7 x64 と MSVC10 で構築された Perl 5.16.3 x64 を使用しています。

0 投票する
2 に答える
1073 参照

perl - perlで明確なタイムアウトを強制する方法は?

LWP を使用して Web ページからコンテンツをダウンロードしていますが、LWP がページを待機する時間を制限したいと考えています。

問題は、サーバーがときどきデッドロックし (理由を突き止めようとしています)、要求がまったく成功しないことです。サーバーはそれがライブであると認識しているため、ソケット接続を開いたままにしておくため、LWP::UserAgent のタイムアウト値は何の役にも立ちません。リクエストに絶対タイムアウトを強制する最良の方法は何ですか?

タイムアウトが制限に達すると、スクリプトが終了し、スクリプトを続行できなくなります。このスクリプト全体がループに入っており、XML ファイルを順番に取得する必要があります。このタイムアウトを適切に処理し、スクリプトを次のアドレスに継続させたいと思っています。誰もこれを行う方法を知っていますか? ありがとう!!