問題タブ [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 に答える
1784 参照

php - 複数のリダイレクトがあるページをクロールする最良の方法

NCBI Web サイトをクロールして、このリンクで利用可能なタンパク質のローカル アラインメントのリクエストを送信します: http://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastp&BLAST_PROGRAMS=blastp&PAGE_TYPE=BlastSearch

PHP を使用して、このアドレスに投稿リクエストを送信し、新しいページに表示される結果を取得できるかどうかを知りたいです。最終結果が表示される前に、ページが複数のリダイレクトを受けるという問題もあります。テキスト領域に入力する次の入力を使用して、この状況をテストできます。

これが私の試みです:

このコードは、POST が行われていないかのように、最初のページを取得します。ありがとう


アップデート

私は以下の提案の1つを試しました - Goutte.

これが私の新しいコードです:

変数$aaTestは、上で示したタンパク質配列です。良い点は、投稿して新しいページを取得しますが、すべてのリダイレクトをたどらないことです。すべてのリダイレクトに従うようにするにはどうすればよいですか?

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

php - Mink の XML 処理が想定どおりに行われず、フィードにバックスラッシュが追加される

Web サイトのフォームのコンテンツを XML フィードに置き換えようとしている Goutte Web ドライバーで Mink を使用しています。

次のメソッドをコーディングしました。

これには基本的に XML フィードが含まれており、その一部を事前に取得したオーダー ID に置き換えて、fillFieldMink に同梱されている関数を呼び出します。

問題は、私が提供したテキストを貼り付けるだけでなく、次のように " 記号の前にバックスラッシュを設定することで奇妙な方法でフォーマットすることです。

そのため、XML フィードを送信しようとすると、Web サイトに次のエラーが表示されます。

PHPのメソッドを使用してみましたstripslashesが、注文 ID を追加した後にエコーを試みると機能しません。元の XML がスラッシュなしで表示されるため、他の関数への呼び出しがあると推測されます。それを使用fillFieldすると、実際にバックスラッシュがテキストに追加されますが、そのソースを見つけることができませんでした。

それを避けるために、この変換がどこで行われる"か知っている人はいますか?\"

ありがとう

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

php - Web スクレイピングでの可変 URL

Guzzle + Dom Crawler で Goutte を使用して、Laravel で webscraper を作成しています。可変文字を含む URL をクロールしたいと考えています。

http://www.example.comのベース URL があります。ここで、post1 ページに移動した場合、スクレーパーに { $post } の変数を持たせ、 http://www.example.com/post1をスクレイピングしたいと思います。ただし、example.com は、post1 の URL にhttp://www.example.com/21442/post1などのランダムな余分な文字が含まれるように設定されています。

http://www.example.com/ \S*/{ $post }のようにリクエストに正規表現を追加する方法はありますか?

0 投票する
4 に答える
1481 参照

selenium - ページアセットの 404 エラーを検出するにはどうすればよいですか?

Behat と Mink を使い始めたばかりです。私は Goutte と Selenium で MinkExtension を使用しており、DrupalExtension も使用しています。

ここまでは順調ですね。ページをロードしたり、さまざまな要素を探したり、リンクをテストしたりできます。

しかし、さまざまなアセット (特に画像だけでなく、css ファイルや js ファイルも含む) で 404 をチェックする方法がわかりません。

ヒントや例をいただければ幸いです。

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

php - Laravel & Elvedia\Goutte を使用して Web サイトをクロールする: JSON を抽出する方法

Goutte Laravel 4を使用して、リモート JSON リソースに正常にアクセスできました。

次のような出力が得られます。

object(Symfony\Component\DomCrawler\Crawler)#285 (4) { ["uri":protected]=> string(36) " http://domain.mg/usergroup/list" ["defaultNamespacePrefix":"Symfony\Component\DomCrawler\Crawler":private]=> string(7) "default" ["namespaces":"Symfony\Component\DomCrawler\Crawler":private]=> array(0) { } ["storage":"SplObjectStorage":private]=> array(1) { ["0000000075faaa10000000001af55ef8"]=> array(2) { ["obj"]=> object(DOMElement)#241 (17) { [ "tagName"]=> string(4) "html" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(4) "html" ["nodeValue"]=> string(438) "[{" id":1,"group_name":"Compte principal","group_desc":"管理者","group_level":9},{"id":2,"group_name":"profil pour les comptables","group_desc":"Comptables","group_level":2},{"id":3,"group_name":"Validateur d'op\u00e9ration","group_desc":"監督者"," group_level":9},{"id":18,"group_name":"コメントなし","group_desc":"Autres Employ\u00e9s","group_level":6},{"id":41,"group_name" :"Invit\u00e9","group_desc":"Guest","group_level":2}]" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(オブジェクト値省略)" ["childNodes"]=> string(22) "(オブジェクト値省略)" ["firstChild"]=> string(22) "(オブジェクト値省略)" ["lastChild"]=> string(22) "(オブジェクト値省略)" ["previousSibling"]=> string(22) "(オブジェクト値省略)" ["attributes"]=> string(22) "(オブジェクト値省略)" ["ownerDocument"]=> string(22) "(オブジェクト値省略)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "html" ["baseURI"]=> NULL ["textContent"]=> string(438) "[{"id":1,"group_name":"Compte principal","group_desc":"Administrateur","group_level ":9},{"id":2,"group_name":"Profil pour les comptables","group_desc":"Comptables","group_level":2},{"id":3,"group_name":"Validateur d'op\u00e9ration","group_desc":"監督者","group_level":9},{"id":18,"group_name":"No Comment","group_desc":"Autres 雇用\u00e9s","group_level":6},{"id":41,"group_name":"Invit\u00e9","group_desc":"Guest","group_level":2}]" } ["inf"] => NULL } } }"group_level":2}]" } ["inf"]=> NULL } } }"group_level":2}]" } ["inf"]=> NULL } } }

$crawlerオブジェクト内の JSON の内部表現を抽出/変換することにつまずきました。どうすればそれができますか?

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

php - goutte による同時 HTTP リクエスト

guzzleの上にgoutteが構築されていることは知っています。これは、guzzle を使用した同時 HTTP リクエストのサンプルです。

同時リクエストは goutte でも実行できますか?

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

php - Symfony DomCrawler Javascript内を検索する方法

Goutte を使用して Web ページを取得しています

ブロックを使用してノードを見つけます

最初のノードだけが必要な場合

「A LINK」を見つけるにはどうすればよいですか?私はこのjsブロックで打った

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

php - ノード リストを X で減らす

現在、21 個のノードを持つクローラー オブジェクトを返しています。

ただし、私が抱えている問題は、それらのノードの最初の 4 つが必要ないことです。結果のオブジェクトをフィルタリングして、最後の 17 個のノードのみを含めるにはどうすればよいですか?

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

php - 構成設定を使用しても、Goutte を使用して cURL タイムアウト エラーが発生する

コードは次のとおりです。

そしてエラー(2回繰り返されます): PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message '[curl] (#28) See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of cURL errors [url] https://sfbay.craigslist.org/sfc/apa/' in /Users/...../vendor/guzzlehttp/guzzle/src/Adapter/Curl/MultiAdapter.php:216

問題は、コードが 1 時間前に機能していたことです。問題はありません。エラー#28がタイムアウトであることがわかった後、cURLオプションを追加しました。

cURL オプションがありませんか? それとも、値を間違って設定していますか?そして、なぜ変化するのですか?私はかなり遅いネットワークを使用していません(AFAIK)。

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

php - クッキーなしでGoutteを使用する方法

goutteを使用するが、Cookie をサーバーに送り返さない方法は?

サーバーはURLでセッションIDを管理できるため、それを行いたいです。