問題タブ [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 投票する
0 に答える
348 参照

basic-authentication - 基本認証はローカルで機能しますが、Travis では機能しません

API を使用するには、いくつかのアクションを実行するために認証を受ける必要があります。テストには Behat + Mink を使用しています。

認証には 2 つの方法があります。ローカル環境と Travis 環境で正常に動作しているトークン (いくつかのパラメーターを指定して POST 要求を送信し、別の場所で使用できるトークンを取得する) のいずれか、または基本認証。

私のローカル環境では、Basic Auth は問題なく動作し、特別な設定をした覚えはありません... しかし、Travis でテストを実行すると、それが考慮されていないようです。

私が言ったように、私は Behat + Mink (+ Goutte であるため、Guzzle も使用しています) を使用しており、リクエストが Curl に送信された後、Authorization ( Authorization: Basic (base64_txt)) を含むヘッダーがちょうど... 消えているようです。私がローカル環境にいるときでも。それでも、ログイン情報は保持されます。しかし、実際には私のローカル環境と何ら変わらないはずの Travis 環境ではありません...

ここに要点リンクがあります。

十分な情報があるかどうかわかりませんが、さらに必要な場合は、遠慮なく言ってください。できる限り提供します。

ありがとう。

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

php - Goutte、サイトはどうやって私がロボットだとわかるの?

Firefox と GoogleBot のどちらを使用していても、サイトは私をボットとして認識します。

Goutte を使用してクローラーを作成しようとしています。Web サイトにはクローラーのブロック システムがありますが、それを回避する方法がわかりません。これは私の現在のコードです:

ご覧のとおり、ユーザー エージェントを変更しました。ユーザー エージェントを記録したローカル ファイルをクロールして、正しく変更されることをテストしました。

それでも、サイトはどういうわけか私をボットとして認識します. 何か案は?

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

php - Goutte 無効化 Guzzle キャッシング

Goutte に問題があるか、実際には Goutte の Guzzle 部分です。

Guzzle はすべての GET 呼び出しを自動的にキャッシュします。無効にしようとしましたが、実際には機能しません。

ここでわかるように、キャッシュ パラメーターを直接 Guzzle コンストラクターに解析しています。

ただし、これは変更を加えません。cacheplugin のドキュメントの時点で (参照: http://guzzlephp.org/guide/http/caching.html )

このコード:

cache.override_ttl の現在の値を出力する必要がありますが、これは何も出力しません。

私が見落としているのは、Goutteラッパーに関するものに違いないと思います。誰にもアイデアはありますか?

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

php - Symfony DomCrawler で要素の生の HTML コードを取得する

HTML 構造:

私のPHPコード:

戻り値:

しかし、私は必要です:

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

web-crawler - 痛風の使い方

問題
GoutteWebスクレイパーを完全に理解できません。

リクエスト
誰かが私がGoutte Webスクレイパーを使用する方法をよりよく理解するのに役立つコードを理解または提供するのを手伝ってくれませんか?README.mdを読みました。Goutteで利用できるオプションやそれらのオプションの記述方法など、提供される情報よりも多くの情報を探しています。フォームを表示しているときに、フォームのname=またはid=を検索しますか?

スクレイプしようとしているWebページのレイアウト
ステップ1
Webページには、入力するフォームの種類(名前またはライセンス)を選択するためのラジオボタンが付いたフォームがあります。デフォルトでは、[名前]テキストボックスと[状態]ドロップダウンメニューの選択リストがあります。ラジオを選択した場合、名前と名前のテキストボックスが消えてライセンステキストボックスが表示されるjQueryまたはJavaScriptがあります。

ステップ2
フォームを正常に送信すると、複数のリンクがあるページが表示されます。そのうちの2つのうちの1つにアクセスして、必要な情報を取得できます。

ステップ3
リンクが正常にクリックされたら、3番目のページに探しているデータが含まれ、そのデータをphp変数に格納します。

誤った情報の送信:
間違った情報が送信された場合、jQuery/Javascriptは「レコードが見つかりませんでした」というメッセージを返します。提出物と同じページにあります。


推奨される方法は、[ライセンス]ラジオボタンを選択し、ライセンス番号を入力し、州を選択してからフォームを送信することです。私はGoutteに関するたくさんの投稿やブログ、その他の項目を読みましたが、Goutteで利用できるオプション、この情報を見つける方法、または存在する場合はこの情報を使用する方法をどこにも見つけることができません。

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

mink - Mink - Goutte ドライバー cURL SSL エラー

Goutte Driver を使用して Mink 1.4 を使用しています

ページにいくつかのフォーム フィールド値を設定し、そのフォームを送信するボタンをクリックしようとしていました。

しかし、その後、このエラーが発生します

CURLOPT_SSL_VERIFYPEERfalseに設定したので、SSL をチェックするべきではないと思いました。

これが私のコードです:

}