問題タブ [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.
php - 複数のリダイレクトがあるページをクロールする最良の方法
NCBI Web サイトをクロールして、このリンクで利用可能なタンパク質のローカル アラインメントのリクエストを送信します: http://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastp&BLAST_PROGRAMS=blastp&PAGE_TYPE=BlastSearch
PHP を使用して、このアドレスに投稿リクエストを送信し、新しいページに表示される結果を取得できるかどうかを知りたいです。最終結果が表示される前に、ページが複数のリダイレクトを受けるという問題もあります。テキスト領域に入力する次の入力を使用して、この状況をテストできます。
これが私の試みです:
このコードは、POST が行われていないかのように、最初のページを取得します。ありがとう
アップデート
私は以下の提案の1つを試しました - Goutte.
これが私の新しいコードです:
変数$aaTest
は、上で示したタンパク質配列です。良い点は、投稿して新しいページを取得しますが、すべてのリダイレクトをたどらないことです。すべてのリダイレクトに従うようにするにはどうすればよいですか?
php - Mink の XML 処理が想定どおりに行われず、フィードにバックスラッシュが追加される
Web サイトのフォームのコンテンツを XML フィードに置き換えようとしている Goutte Web ドライバーで Mink を使用しています。
次のメソッドをコーディングしました。
これには基本的に XML フィードが含まれており、その一部を事前に取得したオーダー ID に置き換えて、fillField
Mink に同梱されている関数を呼び出します。
問題は、私が提供したテキストを貼り付けるだけでなく、次のように " 記号の前にバックスラッシュを設定することで奇妙な方法でフォーマットすることです。
そのため、XML フィードを送信しようとすると、Web サイトに次のエラーが表示されます。
PHPのメソッドを使用してみましたstripslashes
が、注文 ID を追加した後にエコーを試みると機能しません。元の XML がスラッシュなしで表示されるため、他の関数への呼び出しがあると推測されます。それを使用fillField
すると、実際にバックスラッシュがテキストに追加されますが、そのソースを見つけることができませんでした。
それを避けるために、この変換がどこで行われる"
か知っている人はいますか?\"
ありがとう
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 }のようにリクエストに正規表現を追加する方法はありますか?
selenium - ページアセットの 404 エラーを検出するにはどうすればよいですか?
Behat と Mink を使い始めたばかりです。私は Goutte と Selenium で MinkExtension を使用しており、DrupalExtension も使用しています。
ここまでは順調ですね。ページをロードしたり、さまざまな要素を探したり、リンクをテストしたりできます。
しかし、さまざまなアセット (特に画像だけでなく、css ファイルや js ファイルも含む) で 404 をチェックする方法がわかりません。
ヒントや例をいただければ幸いです。
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 の内部表現を抽出/変換することにつまずきました。どうすればそれができますか?
php - Symfony DomCrawler Javascript内を検索する方法
Goutte を使用して Web ページを取得しています
ブロックを使用してノードを見つけます
最初のノードだけが必要な場合
「A LINK」を見つけるにはどうすればよいですか?私はこのjsブロックで打った
php - ノード リストを X で減らす
現在、21 個のノードを持つクローラー オブジェクトを返しています。
ただし、私が抱えている問題は、それらのノードの最初の 4 つが必要ないことです。結果のオブジェクトをフィルタリングして、最後の 17 個のノードのみを含めるにはどうすればよいですか?
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)。
php - クッキーなしでGoutteを使用する方法
goutteを使用するが、Cookie をサーバーに送り返さない方法は?
サーバーはURLでセッションIDを管理できるため、それを行いたいです。