問題タブ [domcrawler]

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

php - HTML ドキュメント内の要素の外側にあるすべての TEXT を取得する方法

ドキュメント内のすべてのテキストを取得するために Symfony DomCrawler を使用しています。

<body>要素の外側にある内のすべてのテキストを収集しようとしています。

私は PHP Symfony を使用しており、XPath (推奨) または RegEx を使用できます。

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

php - ページヒットを生成する最も迅速で効率的な方法

データを更新するために、自分のサイト (cron によって実行される) のすべてのページをクロールしようとしています。約500ページあります。

私は2つのオプションを試しました。

  • PHP シンプルな HTML DOM パーサー
  • PHP get_headers

上記のいずれかを使用すると、各ページの読み込みに約 1.402 秒かかります。合計で約 570 秒かかります。

これを行うより効率的な方法はありますか?

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

php - symfony domクローラーを使用してhtmlテーブルを配列に解析する方法

HTMLテーブルがあり、そのテーブルから配列を作成したい

私の配列はこのように見える必要があります

以下のコードを試しましたが、必要な配列を取得できませんでした

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

php - 無名関数内での配列の更新が機能しない

次のように、Goutte(phpスクレーパー/ウェブクローラー)というパッケージを使用しようとしています:

このスクリプトを実行すると、$reviews配列は常に空になります。しかし、print_r無名関数内にあると、各ループで現在の要素のみが表示されるように見えます。たとえば、4 件のレビューがあった場合、次のようにしました。

次のように出力します。

あたかも無名関数内で配列が更新されないかのように。これを修正する方法はありますか?

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

php - Guzzle PHP を使用して Amazon にログインする方法

Guzzle を使用して Amazon にログインしようとしていますが、うまくいきません。これが私のコードです:

応答を受け取ると、$response->getBody()->getContents()正常にログインしたときにリダイレクトされたページではなく、ログイン ページが返されます。

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

php - カールは文字列を返しています

curl を使用してサイト名PKNiCから値を取得しています

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

このプログラムを実行すると、ページ全体が単一の文字列として印刷された文字列が返されます。

ここに画像の説明を入力

、、、が必要registrant nameです。どうすればそれらのものを手に入れることができますか? 私はそれがどのように機能するのか分かりません。それを表示するために、または何かを使用すると、単一の文字列が提供されるだけです。好みのレコードを取得するにはどうすればよいですか?expiry datecreate datecontactsvar_dumpprint_r

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

php - スペース文字が含まれている uri をテストすると、「現在のノード リストが空です」と表示される

スペース文字が含まれている uri をテストしようとすると失敗します。ウリは/contact/latestReport/Most recent. 以下の各試行の結果は、

現在のノード リストは空です

トライアルには以下が含まれます:

  • $crawler = $client->request('GET', '/contact/latestReport/Most recent');

  • $crawler = $client->request('GET', '/contact/latestReport/Most%20recent');

  • $uri = urlencode('/contact/latestReport/Most recent'); $crawler = $client->request('GET', urldecode($uri));

編集:これが実際のテストコードです。以前は動作していたバージョンには のみが含まれてい/contact/latestReportました。追加する/Most recentと、テストでのみエラーが発生しました。[クライアントは非常によく似たレポートを要求したため、現在/Most recent/FY to dateバージョンがあります。] 開発環境と本番環境/contact/latestReport/Most recentでは、期待どおりの結果が得られます。

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

php - XML と XPath を使用した Symfony DomCrawler

titleすべての要素を取得して配列に保存しようとしています。

XML:

PHP:

要素ノードはいくつかの条件を満たす必要があるため、呼び出すと出力さ$result->count()れるはずですが2(例 3 & 例 5)、0 が出力されます。

ありがとう。

編集:

解決策が見つかりました。XPath は次のようになります。

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

seo - www を指す 302 リダイレクトがあります。ただし、Googlebot は www 以外の URL をクロールし続けます

ロボットに domaine.com ではなく www.domaine.com を強制的にクロールさせることができるかどうか知っていますか? 私の場合、(HTML コードを表示するために) prerender.io でキャッシュされた URL を有効にした Web アプリがありますが、www.

そのため、ロボットが domaine.com をクロールしてもデータはありません。

Nginx ではリダイレクトは自動 (domaine.com> http://www.domaine.com ) ですが、結果はありません。

私のサイトマップでは、URL にはすべて www.

私のNginxリダイレクト:

アイデアはありますか?

ありがとうございました !