問題タブ [www-mechanize]
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.
perl - PDFをスクレイピングするためのPerlMechanizeモジュール
多くのPDFがアップロードされているWebサイトがあります。私がやりたいのは、ウェブサイトにあるすべてのPDFをダウンロードすることです。そうするために、私は最初にウェブサイトにユーザー名とパスワードを提供する必要があります。いつか検索した後、私はこの作業を行うWWW::Mechanizeパッケージを見つけました。ここで問題が発生します。つまり、リンクにPDFが含まれていない場合は、リンクを破棄するのではなく、リンクをナビゲートして、新しいページに次のリンクが含まれているかどうかを確認する必要があります。 PDF。このようにして、アップロードされたすべてのPDFをダウンロードするために、Webサイト全体を徹底的に検索する必要があります。これを行う方法について何か提案はありますか?
perl - インデックスではなく名前で入力を取得する
HTML スニペット:
私は WWW::Mechanize を使用してフォームに入力しています。その入力は上記のとおりです。私はこれをやっています:
フォームの最初の入力だからです。しかし、それを次のように参照する方法はありid
ますか?
perl - WWW::Mechanize->get でエラーが発生しました (HTTPS はサポートされていません)
WWW::Mechanize を使用して Yahoo にログインしようとしています。ただし、ログインページを取得しようとすると、エラーが発生します
私は、Crypt::SSLeay をインストールしました。これは、HTTPS 要求を処理することになっていると思いました。なぜこのエラーが発生するのでしょうか?
スクリプトの開始時に「Crypt::SSLeay を使用する」と言っても、インストールされていないというエラーは発生しません。
YAに行きます!最初にページ (http) を開き、次に「サインイン」 (https) リンクを「クリック」しますか?
ヘルプやアドバイスをいただければ幸いです。
編集: LWP::Protocol:https をインストールしようとしましたが、失敗しました。
もう一度編集: テストを使用して Crypt::SSLeay をインストールすると、同じ失敗が発生します。-_-
編集 3 回目: みんな、助けてくれてありがとう。返事が遅れて申し訳ありません。これは Redhat 9 で、インストール全体がかなりひどいものになっています。
私の当初の目標は、WWW::Mechanize をインストールして Yahoo にログインできるようにすることでした。システム管理者 (私たちの教師) が perl 5.8.7 をインストールしていたため、インストールが失敗しました。これは、LWP::UserAgent が 5.8.8 未満のバージョンで自分自身をアップグレードできないためです。
次に、App::perlbrew を使用してホーム ディレクトリに Perl 5.10.1 をインストールし、Mech のインストールに成功しました。ただし、インストールした古いモジュール (5.8.7 を使用) を使用すると、多くの互換性の問題が発生しました。すべてをアンインストールする方法がわかりません。おそらく 15 MB のディスク容量しか残っていません。
OpenSSL はすでにシステム上にありましたが、今朝、ミラーから tarball をダウンロードしてコンパイルすることにより、ホーム ディレクトリに別の OpenSSL をインストールしました。どうやら最新版だったようです。
一つのことは私を殺すことです。何もするためのルート権限がありません。このプロジェクトは金曜日に予定されているので、これを破棄して、HTTPS にまったく関係のないことをしようと考えています。
openssl-devel の yum インストールを実行するだけでよいと読みましたが、root 権限なしでは実行できません。誰かがそれを行う方法を知っているなら、私に知らせてください。
Net::SSLeay の強制インストールを行うというアドバイスを試して、後でお知らせします。
Mech を別のディレクトリ (5.8.7 とは別の場所) にインストールしようとしましたが、失敗しました...うーん...
4回目の編集: Net::SSLeay を強制的にインストールしました。ログは次のとおりです。動作しません。あなたはSSLライブラリについて正しいです。
5 番目の編集: やあああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ!先生がopenssl-develをインストールしたところ、動作するようになりました!!!!!!!!
perl - Perl と Mechanize を使用した Web サイトへのログイン
だから、これは私を夢中にさせています。基本的に、ユーザー名とパスワードをハードコーディングすると、問題なくログインできます。しかし、このプログラムを他のユーザーと共有したいので、ユーザーにユーザー名とパスワードを入力するように求めたいと思います。(プログラムはコース サイトにログインし、すべてのコース作業情報 (講義、ハードウェアなど) をダウンロードすることになっています)
このコードは機能します:
ただし、ユーザーにログイン情報を入力するように求めようとすると、機能するようになりました。コンテンツを印刷すると、次のページ(そのユーザーのコースページ)ではなく、ログインページのhtmlが返されます
これらは本質的に同じものであるため、これは本当に意味がありません。プロンプトに引用符で囲まれたユーザー名/パスワードを入力しても、まだ役に立ちません.
perl - 機械化されたブラウザーをサブルーチンに渡す (WWW::Mechanized を使用した Perl)
私はまだPerlを学んでいるので、専門用語の知識がなく、一般的な初心者であることをお詫びします。
コース ワークス アカウントにログインしてすべてのファイルをダウンロードするスクリプトを作成しようとしています。再ログインするまで約1時間しか滞在できないので、サブルーチンでログイン作業を行い、時間に応じてそれを呼び出してログインし直して続行できるようにしたいクロール。私の問題は、サブルーチンとメインコードの間でブラウザーをやり取りできるようにしたいことです (? 用語については、以下の例を参照してください)。
これは私がこれまでに持っているものであり、機能しません:
これは、 で「未定義の値に対してメソッド 'get' を呼び出す」ことができないことを示しています$browser -> get($url);
。したがって、メイン コードでのブラウザの初期化が機能しなかったと推測しています (サブルーチンに渡されなかったため) Y/N??
わかりましたので、次のようにサブルーチン自体でそれを実行しようとしました:
今度は、次のエラー メッセージが表示されます。「Missing base argument at C:/Perl64/lib/HTTP/Response.pm line 93」
そこで、動作するまでサブルーチンの行を削除したところ、次のようにコンパイルされることがわかりました。
しかし、明らかにゴミを返すだけです。
私が言ったように、問題はブラウザーオブジェクトをサブルーチンに渡そうとしていることだと思います。これは単なるスカラーではないと思います (そこから「コンテンツ」などを取得できるため)。わからない。サブルーチンで初期化するとまだ問題が発生するので、私も混乱しています!!????? $browser もグローバル変数にしようとしましたが、両方のコードで同じエラーが発生します。明らかに、ここで何かが欠けています。
それを乗り越えてくれたすべての人に前もって感謝します。私の経験不足にぶつかる、おそらく本当に単純な答えのために、それは少し長ったらしいことを知っています。
perl - WWW::Mechanize: save_content-encoding-question
からsave_content() メソッドのエンコーディングに影響を与える方法はありWWW::Mechanize
ますか?
perl - 提案が必要:Perlを使用したWebスパイダー
スパイダーは次のことを行う必要があります。
- ログインフォームを投稿してログインする
- Cookieによるログイン統計の維持
- ホームページのランダムなリンクをたどる
スパイダーの目的は、多くのユーザーがWebサイトを閲覧していることをシミュレートして、新しいWebサイトをビジー状態に保つことです。
私はLWPとWWW::Mechanizeを見ました。どのモジュールを使用すべきかわからない、または他のより良い提案。あなたがコード例を持っているなら、とても良いです。
ありがとう。
perl - Perl : Web サイトのスクレイピングで予期しない動作が発生する
WWW::Mechanize
およびを使用しHTML::TokeParser
て、更新のために Web サイトを解析しています。ログインが必要なため、ウェブサイトで詳細を説明することはできません。Web サイトには基本的にデータの表があります。テーブルの最初の行に到達するまでhtmlを解析しているだけです。それが最後のスクレイプの値であるかどうかを確認し、そうでない場合はメールを送信します。既存のテーブル エントリでテストすると、これは完全にうまく機能しますが、実際の更新が行われると、最後のスクレイピングでスクレイピングが停止しません。テーブルが使い果たされるまでメールを送信し続け、これを無期限に繰り返します。何が起こっているのかわかりません。ウェブサイトなしでは誰も確認できないことはわかっていますが、とにかくコードを投稿しています。何がうまくいかないのかについてのアイデアをいただければ幸いです。
コード:
perl - Test :: WWW :: Mechanize :: PSGIを使用してDancerアプリケーションをテストするにはどうすればよいですか?
wwwmechanizeのスクリプトアプリを設定する正しい方法がわかりません。動作する代替案を少なくとも1つ試しましたが、テストスイートを使用してロギングをより静かにすることができるように、テストで構成を渡そうとしています。
スクリプトで実行do
するとテストを実行できるように見えますが、ロギング変数が正しく設定されておらず、同時にそれを行うためのより良い方法があるようです。
アップデート
私は解決策に近づいているかもしれないと思います...
これは、PlackPSGIのDancer::Deploymentドキュメントから取得しました。ただし、テストで500エラーが発生します。
DBIエラーはここでは関係ありませんが、私が取得するエラー出力の一部です。なぜ見つからないのかわかりません/login/default.tt
。問題のテンプレートがにあるので、ビューフォルダがどこにあるのかわからないことが問題だと思いますviews/login/default.tt
。このビューは、で実行している場合でもブラウザで正常に機能しplackup
ます。私は困惑しています。