問題タブ [mechanize-ruby]

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 投票する
1 に答える
786 参照

javascript - Mechanize ruby​​gem を使用した JavaScript onchange イベントの処理

大学の Web サイトから結果を取得するスクリプトを作成しようとしています。誰かが Mechanize を使用することを提案しましたが、それは本当に有望に見えます。

結果を取得するには、最初にロール番号を入力してからセッションを選択する必要があります。最初の部分のシミュレーションは Mechanize で簡単にできましたが、2 番目の部分は実際には JavaScriptonchangeイベントであるため、問題が発生しています。

JavaScript の関数定義を読みましたが、これがこれまでに思いついたものです。Mechanize は onchange イベントを処理できず、実際に JavaScript 関数によって変更された値を手動で渡すと、同じページが返されます。

これがJavaScriptコードです

firebug にブレークポイントを設定したところ、値__EVENTTARGETが「Dt1」であることがわかりましたが、 __EVENTARGUMENT「」のままです。

これを行うために私が書いたルビースクリプトは

誰が私が間違っているのか教えてもらえますか?

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

ruby - Ruby Mechanize:リンクをたどる

Mechanize on Rubyでは、新しいページにアクセスするたびに新しい変数を割り当てる必要があります。例えば:

すべてのページ状態を保持する変数なしでMechanizeを実行する方法はありますか?お気に入り

0 投票する
0 に答える
212 参照

ruby-on-rails - Rails mechanize は、ログインが必要なページにアクセスできません

Rails + Mechanize でログインした後に表示されるリンクをクリックしようとしていますが、「Cookie を有効にする必要があります」と返されます。Mechanize オブジェクト ( mechanize.cookie_jar.save_as('cookies.yml')) の Cookie を確認しましたが、これは存在し、サイトにアクセスしたときにブラウザーが送信した Cookie と同じです (FireBug で確認しました)。しかし、ログインできません。

なぜうまくいかないのですか?

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

ruby - Ruby1.9.3エンコーディングの問題を機械化する

次のコードを使用します(Mechanizeサイトからですが、レーキタスクで)。

エンコードエラーが発生します。

これは、以下を使用している間です。

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

ruby-on-rails - ruby mechanize + https リンクにより ruby​​ segfault が発生する (rvm がインストールされている場合)

GUIDE に指定されている手順に従って mechanize を使用しましたが、HTTPS ページを取得しようとすると、segfault が発生します。

何らかの形で rvm が正しく構成されていないのではないかと思っていますが、それをテストする方法がわかりません。それが役立つ場合は、これをトップレベルの.rvmrcにも持っています

これは ruby​​ のバグではないと思います。なぜなら、https ページで get を呼び出すことに問題があった人は他にいないからです。しかし、これをデバッグする方法がわかりません。

編集: 実際には Rails とのやり取りが原因であることが判明しました。IRB に直接アクセスすると正常に動作しますが、Rails コンソールは動作しません。

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

ruby - Mechanize::Page の検索メソッドから Mechanize オブジェクトを取得するにはどうすればよいですか?

適切なノードを見つけるためにクラスと要素階層にしか依存できないサイトをスクレイピングしようとしています。しかし、フォームの入力や送信などには使用できない return を使用しますMechanize::Page#searchNokogiri::XML::Element

純粋な CSS セレクターを使用したいのですが、クラスのマッチングは、さまざまな_with方法でも非常に簡単なようです。ただし、:not(.class)単純に CSS セレクターを使用する場合と比較して、要素の階層を一致させる方法がわかりません。

Nokogiri 要素を Mechanize オブジェクトに戻す方法、またはメソッドから直接取得するsearch方法はありますか?

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

ruby - 事前/事後接続フックを機械化する

Mechanizeを使用して、リクエストを1秒あたり1つに制限する方法を見つける必要があります(または5秒ごとに1つ、または1分ごとに2つなど、ポイントはリクエストを評価する方法を見つけることです)。

検索すると、これが問題への取り組みを開始する方法のようです。接続前/後のフックです。それらをどうするか、どのようにアプローチするかを正確に知らないのは私だけです。私のレベルと調査から、「ちょっと待って」と言うラムダまたはプロシージャを実行する必要があると推測しています。

私の質問は基本的に、これを行う方法の例または別の手がかりです。私はいくつかのラムダを試しました(そして私はこれが正確に何をするかについての理解が低いです):

しかし、これは私の要求をエラーに変えるだけです:

機械化コードを使い始めても、これまでのところほとんど成果がありません。

任意の入力と学習ガイダンスをいただければ幸いです。

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

ruby - ruby 機械化の規制/律速

Mechanize インスタンスが API に接続する頻度を調整する必要がある (2 秒に 1 回なので、接続をそれ以上に制限する)

したがって、この:

私はこれがうまくいくと思っていましたが、そのクラスのすべてのメソッドが 2 秒間スリープするようになりました。接続後のフックを試してみますが、もう少し精巧なものが必要であることは明らかですが、現時点ではわかりません。

コードはより詳細な説明なので、興味がある場合はhttps://github.com/blueblank/reddit_modbotに従ってください。それ以外の場合、私の質問は、Mechanize インスタンスを API で指定された特定の時間枠内に効率的かつ効果的にレート制限する方法に関するものです (ここでその制限を超えると、リクエストや禁止が破棄されます)。また、機械化インスタンスを自分のクラスにもより適切に統合する必要があると思います。そのポインタも高く評価されています。

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

ruby - RubyMechanizeは応答としてCookieを無視します

私はウェブサイトでRubyMechanizeで遊んでいます。しかし、応答のset-cookieヘッダーの1つを無視したようです。私のコードと結果をご覧ください。u=__LOGOUT__agent.cookiesの結果にパーツがありません。なんで?ありがとう。

これは、上のコードを実行したときの結果です。

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

ruby - Ruby Mechanize を使用して、Flash によるファイルのアップロードをシミュレートする

Ruby Mechanize を使用して、Web サイト用の自動ファイル アップロード スクリプトを作成したいと考えています。ただし、Web サイトの読み取りアップロード ステップは、Flash ファイルによって行われます。私はfiddlerを使用して、Flash ファイルからサーバーへのトラフィックをキャプチャしました。はい、これ。

私の質問は、この投稿リクエストをどのようにシミュレートできますか? 現在、私が考えることができるのは、自分でフォームを作成し、タイプfileの入力要素を追加することです。次に、カスタマイズされたヘッダー (ユーザー エージェントなど) を使用してこのフォームを送信します。しかし、ファイルのアップロード部分を処理するのはまだ難しいです。誰でも私を助けることができますか?ありがとう!