問題タブ [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 - URLを介したPerlWebナビゲーション
このサイトhttp://irl.worldfootball.net/をナビゲートして、プレーヤーのページにアクセスしようとしています。私が持っているプレーヤー名変数を取得し、それらをURLに挿入して、各プレーヤーのそれぞれのページにアクセスできるようにしたいのですが、それを完全に理解することはできません。誰か助けてもらえますか?
このリンクhttp://irl.worldfootball.net/spieler_profil/Wayne-Rooney/からわかるように、URLは非常に単純です。私がやりたいのは、選択したプレーヤー名をWayne-Rooneyと表示されている場所に挿入してから挿入することです。そのページに移動します。どんな助けでも大歓迎です、ありがとう!
perl - 最初にサーバーにアップロードせずに、perl Web アプリケーションでクライアント コンピューターからファイルを送信することは可能ですか?
これまでのところ良い答えが得られずにインターネットでこれを探したので、ここに問題があります:
イントラネット(このアプリケーションはRedHat Apacheサーバー上にあります)で、少数の人々(WindowsコンピューターのWebブラウザーからアクセスし、約100人のユーザー)が使用するperl Webアプリケーションを持っています。このアプリケーションはユーザーの入力を取得して使用しますWWW::Mechanize
すべてを別のページ (直接使用してはならない別のサーバー) に送信し、フォームを処理して結果を返す (最適に聞こえないかもしれませんが、必要に応じて実行されました)、問題ここでは、ユーザーがファイルを送信できるようにする必要があります (ほとんどの場合、送信されるWWW::Mechanize
他のフォーム データと一緒に、または添付ファイル付きの電子メールによって、〜 500kB の画像になります。どちらのオプションも同様です)ファイルが既にサーバー上にある場合は、ファイルを送信/添付できることを知っています。私の質問は簡単です:
最初にサーバーにファイルをアップロードせずに (サーバーが送信する)、クライアント コンピューター (ブラウザーで perl Web アプリケーションを実行) からファイルを送信することは可能ですか?
PSこれは「コードを教えてください」という質問の1つではありません。特定のコードを求めているわけではありません。これができるかどうかを知りたいだけです(そして、それがどのように考えられるか)、または、最初に perl アプリケーションを実行しているサーバーにファイルをアップロードする必要がある場合 (そのためのスクリプトが既にあります)。これが不可能な場合は問題ありません。ファイルを送信する前に、最初にサーバーにアップロードする必要があるかどうかを確認したいだけです。
perl - WWW::Mechanize は、gzip されたコンテンツの base href を無視します
タイトルの通りWWW::Mechanizeが認識しない
ページ コンテンツが gzip されている場合。次に例を示します。
出力:
ここで何か不足していますか?ありがとう
編集: LWP::UserAgent で直接テストしたところ、問題なく動作します。
出力:
これは WWW::Mechanize のバグのように見えますか?
編集 2: WWW::Mechanize ではなく、LWP または HTTP::Response のバグです。LWP はデフォルトで gzip を要求しません。私が設定した場合
上記の例では、間違ったベースを返します
編集 3: バグは parse_head() の LWP/UserAgent.pm にあります
gzip された HTML を使用して HTML/HeadParser を呼び出しますが、HeadParser はそれをどう処理するかわかりません。LWP は、解析サブルーチンを呼び出す前にコンテンツをガンジップする必要があります。
perl - WWW::機械化と反復
http://www.soccerbase.com/tournaments/tournament.sd?comp_id=1から 1184 行から 1325 行まで、基本的に次の 7 日間に予定されているゲームの情報をかき集めようとしています。私は単一のインスタンスに対してコードを動作させていますが、コードを反復して、7 日分のゲームが終了するまですべてのゲーム情報をスクレイピングする方法がわかりません。特定のタグまたは何かにヒットするまでスクレイピングする、作成できるある種のループはありますか? これまでのコードは次のとおりです。よろしくお願いします。
perl - Perl、Mechanize を使用して Web ページをナビゲートする
スクリプトをナビゲートしてすべてのコンテンツを取得したいWebページがたくさんあります。リンクが各ページの 18 番目のリンクであることはわかっています。リンクを1回たどってスクリーンスクレイプするためのテストとして、次のコードがあります。
残念ながら、アクセスしようとしているリンクの href タグには何もありません。ページのソースを表示すると、リンクは次のようになります。
これは JavaScript であり、mechanize がこのリンクをたどることはできません。これを回避するためのアイデアはありますか?
debugging - WWW :: Mechanize :: Firefox:デバッグ-開いていないファイルハンドルでprint()を停止しようとしました
ファン
この初心者の質問で申し訳ありませんが、私が知る必要があることをグーグルで見つけることができません。印刷はわかりますが、わかりません...
以下を参照してください。
まあ-これはどういう意味ですか?
しばらくお待ちいただきますようお願いいたします。
最初から始めましょう:このスクリプトを実行します。このスクリプトは、私が持っているWebサイトのスクリーンショットを実行するために作成されています。mozreplを実行しています。ここに、要求されたURLのいくつかを含むファイルがあります...これはの短いスニペットにすぎないことに注意してください。実際のリスト-実際のリストははるかに長いです。3500を超える行とURLが含まれています
奇妙なのは出力です-以下を参照してください...質問:スクリプトを変更する必要があります
次の小さなスクリプトで出力を取得するのはなぜですか。
!/ usr / bin / perl
ここで非常に圧倒的な出力を参照してください-率直に言って、私はそのような面白い出力を取得するのに苦労することはありません..コード全体をデバッグする必要があります....以下を参照してください、
よく私はエラーを取り除くためにたくさんのことを試みました
:まあ-最初に、これはそれほど深刻なエラーではないと思います-私はそれをデバッグしなければならないと思いますそしてそれからそれはより良く働くでしょう。第二に、私は最初に、スクリプトが「マシンに過負荷をかけている」ように見えると思いましたか?今、私はそれについてよくわかりません:症状は奇妙に見えますが、「マシンの過負荷」を結論付ける必要はないと思います第三に、問題が確実に発生するようにするために取らなければならない特定の手順を考えますWWW :: Mechanize :: Firefoxに関連しているのですか?これは、Perlの警告が何を意味するのか、そして診断プラグマを使用してより多くの説明を得るという考えに私を導きます:あなたはどう思いますか?
そうですね-open()、sysopen()、またはそう+ cket()呼び出しを行うか、FileHandleパッケージからコンストラクターを呼び出す必要があります
よく-あるいは、閉じたファイルハンドルOUTPUTのprint()は、autodieを使用せず、openの戻り値もチェックしなかったことを示す多くの回答を提供します。私はそれをデバッグし、エラーが発生する場所を見つける必要があります
この初心者の質問で申し訳ありませんが、私が知る必要があることをグーグルで見つけることができません。印刷はわかりますが、わかりません...
regex - WWW::Mechanize::Firefox - ほぼ完了 - 正規表現エラーが少しだけ残った
私にとって、Perl は時々 Abracadabra のように見えます。私との忍耐に感謝します...
アップデート; user1269651とBodoinが素晴らしい修正を提供するまで、いくつかのエラーがありました
bodoins コードの結果を参照してください..(彼が一度コードを変更したことに注意してください - 私はここで最初のバージョンを使用しました...:;
bodinsコードの最新バージョンでは、いくつかの結果がそのように見えます..
いくつかの小さな問題が残っています - 上記を参照してください... これらの小さなエラーで何ができるでしょうか.. ところで、結果をフォルダーに保存するという考えはどうでしょうか。.. /(いわゆる画像とか!?)
更新終了…
ここで最初のスレッドが開始され、何が必要かの概要が示されます。
私はウェブサイトからいくつかのサムネイルを持っている必要がありますが、wgetを使用しようとしました-しかし、必要なものをレンダリングする機能が必要なので、それは私にとってはうまくいきません:ファイルに保存された2,500個のURLのリストがあります。 . 次に、スクリプトが必要です-以下を参照してください-ファイルを開き、行を読み取り、Web サイトを取得して画像を小さなサムネイルとして保存します。
私はたくさんのウェブサイト (2500) を持っているので、結果の命名について決心しなければなりません。
これまでのところとても良いです。まあ、私はこのようなことを試してみると思います
また、必要がなくなった場合は、ファイルハンドラーを閉じる必要があります。これに加えて、open で 'or die' を使用できます。私はそれをやった - 以下を参照してください!
ところで、適切なファイル名が必要です。URL の膨大なリストがあるため、出力ファイルの膨大なリストを取得します。したがって、適切なファイル名が必要です。番組に反映できるのか!?
スクリプトがまったく起動しません....
perl - 保存の問題: すべてうまくいきますが、スクリプトは意図した場所に保存されません
私にとって、Perl は時々 Abracadabra のように見えます。私との忍耐に感謝します...
アップデート; ジョーは私に、機能していない完全なスクリプトを投稿するように依頼しました: ここに、暴徒の回答後に私が試したコードがあります (以下を参照)
ずっと深刻なエラーが発生しています:
ここで私が現在実行しているスクリプト...
ここに5 つのサンプル URL があります...
更新の終了; ここで元の初期スレッドが続きます...
私はウェブサイトからいくつかのサムネイルを持っている必要がありますが、wgetを使用しようとしました-しかし、必要なものをレンダリングする機能が必要なので、それは私にとってはうまくいきません.2,500個のURLのリストがあり、各行に1つずつ、ファイルに保存されています. 次に、スクリプトが必要です-以下を参照してください-ファイルを開き、行を読み取り、Web サイトを取得して画像を小さなサムネイルとして保存します。私はたくさんのウェブサイト (2500) を持っているので、結果の命名について決心しなければなりません。
これまでのところとても良いです。まあ、私はこのようなことを試してみると思います
小さなスクリプトを実行して結果を収集/取得しています...画像をサムネイルとして収集します。ここまでは順調ですね。
注:すべてがうまくいき、これまでのところうまく動作します-はい、特別なオプションを作成しようとするまで:スクリプトに結果のフォルダーへの保存を強制したかった
さて、結果を images などのフォルダに保存するという考えについてどう思いますか!?) これは実行可能ですか? 結果をフォルダーに保存するので、大いに役立ちます。そして、多くの結果がマシンを混乱させません...
私はいくつかの問題に遭遇します。それをやろうとしました-したがって、ディレクトリに保存します:
open(my $out, '>', "path/$name") or die $!;
私はそうしました..
注 - images というディレクトリはまったく同じフォルダにあります...
私は結果を得る
perl - WWW::Mechanize::Firefox はうまく動作します: スクリプトをもう少し堅牢にするためのいくつかの試み
友達
画像スクレーパーとして機能する素敵なスクリプトがあります。最初の試行とテストでは、すべてうまくいきます。
これは、スクリプトに対して実行している urls.txt で使用する URL のリストです。これは短いリストに過ぎないことに注意してください。2500 個の URL に対して実行する必要があるため、スクリプトがもう少し堅牢で、一部の URL が利用できない場合や取得に時間がかかりすぎる場合でも実行を継続できるとよいでしょう。一部の URL が利用できない、時間がかかりすぎる、または mozrepl とWWW:Mechanize::Firefoxをブロックするのに時間がかかりすぎる場合、スクリプトに問題が発生していると思います。
私のアイデアや提案がおそらく問題の原因だと思いますか? もしそうなら、どうすればスクリプトを改善し、より強く、より強力で堅牢にして、すぐに停止しないようにすることができますか.
ご連絡をお待ちしております。
ご挨拶。
でも、今よりもっと丈夫になればとても嬉しいなと思います。
確かに、WWW::Mechanize::Firefox のように本物のブラウザを動かしています。
そのため、どこかで多少不安定になる可能性があり、おそらく他のスクリーンスクレイピングソリューションよりも. 次のようなエラーが発生しています...(以下を参照)
また、 Firefox のトラブルシューティングのデバッグページを詳しく調べて、 さまざまなバグ、トラブルなどに関するヒントやトリック、回避策を調べました。
結果と、停止した場所のエラーも確認してください。
何を指示してるんですか?スクリプトをもう少し堅牢にするにはどうすればよいでしょうか? 早く止まらないようにする方法は?
login - MechanizeとNokogiriを使用してWebサイトにログインしますか?
サービスプロバイダーのログインフォームの1つで問題が発生しています。他のサイトは正常に動作していますが、何らかの理由でログインフォームを通過できません。
のWebサイトログインは次のようになります。
他のサイトと同じコードでログインしようとしましたが、うまくいきません。
他のSOの質問/回答で提案されているように、別のログイン方法も試しました。
この認証方法を使用すると、rakeタスクを実行すると次の出力が得られます。
よく調べてみると、上記のエラーは、フォームが開始された直後にフィールドがあるためと思われます。
私は何かが足りないのですか?もしそうなら、何ですか?どんなポインタでも大歓迎です!