問題タブ [goutte]

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 に答える
1703 参照

php - Symfony DomCrawler Component と Goutte for Laravel 4 を使用して、クローラー オブジェクトから html タグのリストをスキップまたは削除するにはどうすればよいですか?

これは私の最初の試みでしたが、うまくいきませんでした。

このページから「p」タグを取得したいhttp://www.amazon.com/dp/B00IOY8XWQ/ref=fs_kv文章(); 「p」内の「スクリプト」内のテキストとjsを取得します。構造はこのようなものです。

Lorem ipsum のテキストが欲しいだけです。

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

goutte - Goutteでjavascriptで作成されたリンクをクリックする方法

Goutte で JavaScript によって設定されたリンクをクリックする方法を知っている人はいますか?

例えばリンクはこんな感じ。

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

symfony - Guzzle クライアントでファイルをアップロードするには?

アップロード メソッドで BDD テストを実行しようとしています。symfony2 プロジェクトで Behat と Mink を使用しています。

これで、このクライアントで簡単なリクエストを実行できるようになりました:

問題なく。

ファイルでリクエストを行う方法は? 私はこれを試しました:

そして、私が受け取るエラーは次のとおりです。

PHP 致命的なエラー: 未定義のメソッド GuzzleHttp\Stream\Stream::addFile() の呼び出し

間違いは何ですか?ありがとう!

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

php - PHP で Goutte を使用して AJAX ページをクロールする

Goutteと Symfony Dom Crawler を使用して AJAX Web サイトをクロールし、オンライン ショップの記事を取得しようとしています。エラーが発生します:

未定義のインデックス: HTTP_ACCEPT_LANGUAGE

アドレスはhttp://b2b.asicsonline.com/adg/welcomeです。

フォームを取得したり、サイトにログインしたりできません。何が問題なのか教えていただけますか?

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

php - 傍受された Guzzle 3 リクエストが DNS リクエストを生成しないようにするにはどうすればよいですか?

私は Goutte 1.0.6 (Guzzle 3 を使用する最新版) を使用して Web スクレイパーを構築しています。テストのために、実際の cURL 応答の代わりに HTTP 応答をロードしてそれを提供したいのですが、これはほとんど問題なく動作します。現在、ユースケースは単体テストですが、これを本番キャッシングにも使用したいと考えています。

興味深いことに、Web から切断されていると単体テストの速度が低下することに時々気付きました。Wireshark を少し調べてみたところ、http://example.com/something不要な DNS 要求を呼び出していることがわかりました。

これは、偽の応答を提供するための私の Guzzle プラグインの関連スニペットです。関連するビットは、キャプチャされたrequest.before_sendイベントであり、キャッシュ項目が Propel テーブルで見つかった場合、リクエストの最後にその応答が埋められているという事実です:

要約すると、コード自体は機能しています。Wireshark は、ポート 80 経由でデータを取得しようとする実際の試みを示しておらず、要求したドキュメントを example.com が提供できないことに関連する失敗の例外 (404 など) もありません。だから、私の偽の応答は問題ないようです。

Guzzle がこれらの無意味な DNS 呼び出しを行うのを防ぐ方法はありますか? MockPluginを使用することも考えましたが、当時はどうすればよいかわかりませんでした。また、この残りの問題が解決されるかどうかもわかりませんでした。

(プラグイン内でフェイク/モッキングを行うのが好きなので、使用MockPluginに問題はありませんが、ドキュメントのように外側ではなく、プラグイン内でインターセプトを行いたいと思います。おそらく拡張できると思いますか?)

Guzzle の新しいバージョンに移行する必要があるかもしれません。それが唯一の方法である場合は、それで構いません。当時の最新の Goutte で Guzzle 3 が使用されていた古いプロジェクトに参加しています。


追記: DNS 呼び出しは、Guzzle ではなく Goutte から発信されている可能性があると思います。Goutte は Composer によってファイルとして取得されるため、デバッグの方法がわかりません.pharxdebugここで、どこでネットワーク呼び出しを行っているかを確認するために、デバッガーが役立つでしょうか?

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

selenium-webdriver - Behat/Mink - goutteDriver を使用して xpath で要素を見つけることができない

Behat 3.0 と Mink 1.6 を使用しています。

これらのコードは Selenium2 と Zombie では機能しますが、Goutte では機能しません。

誰が何が起こっているのか知っていますか?

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

php - 不正なフィールド パス "" (InvalidArgumentException)

Behat を使用して自動テストを行っており、Mink とその Goutte ドライバーを追加しました。Behat と Mink の最新バージョンを使用しています。

Mink 拡張機能を Feature Context ファイルに追加しました。次のような単純な機能を実行すると機能します。

ただし、次のステップを試して、いくつかのフィールドに入力しようとすると:

ユーザー名:

<input class="input-field" type="text" id="username"/>

次のエラーが表示されます。

どんな助けでも大歓迎です、

ありがとう!