問題タブ [domxpath]

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 投票する
3 に答える
5667 参照

php - DOM または XPATH を介して各要素の属性の幅と高さを取得します

各要素の属性の幅と高さを取得するにはどうすればよいですか?

例えば、

結果、

しかし、これらは私が求めているものです。

  1. divクラス名がitemonlyの を選択します。
  2. 295(幅) と210(高さ) のみを取得します。

DOMで可能ですか?またはXPATH?

編集:

クラス名でdivを選択することはできたようですが、

今、これは私が求めているものです。

295(幅) と210(高さ)を取得します。

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

php - 長いコマンド ライン プロセス中に DOMDocument / Xpath でメモリ リークが発生する - このクラスを分解する方法

XPath を使用して HTML を分析するコマンド ライン php スクレイピング アプリを構築しました。問題は、新しい DOMXPath クラス インスタンスがループで読み込まれるたびに、読み込まれる XML のサイズとほぼ同じメモリ損失が発生することです。 . スクリプトが実行され、実行され、制限に達して終了するまでメモリ使用量がゆっくりと増加します。

でガベージ コレクションを強制しようとしましたがgc_collect_cycles()、PHP はまだ古い Xpath 要求からメモリを取得していません。実際、DOMXPath クラスの定義には、デストラクタ関数さえ含まれていないように見えますか?

So my question is ... is there any way to force garbage clean up on DOMXPath after I've already extracted the necessary data? Using unset on the class instance predictably does nothing.

The code is nothing special, just standard Xpath stuff:

As you can see above I've kept the instantiation of a new DOMDocument class outside of the loop, although that doesn't seem to improve performance. I've even tried taking the $xpath class instance out of the loop and loading the DOM into Xpath directly using the __constructor method, memory loss is the same.

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

php - このURLに関連付けられたXMLファイルを取得するためのCURL

CURLを使用してこのURLに関連付けられたXMLファイルを取得しようとしています。次に、DOMxPathを使用してxmlファイルを解析しようとしています。

この時点では出力エラーはありません。何も表示されていません。いくつかのエラーをキャッチしようとしましたが、理解できませんでした。どの方向でも素晴らしいでしょう。

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

c# - Web スクレイピングのために C# で DOMXPath を使用する方法

PHP のように C# で DOMXPath を Web スクレイピングに使用する方法はありますか? または、同じことを行う別の方法はありますか?

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

php - PHPを使用したDOMXPathユニオン抽出

私は取得しようとしimgていますが、それを含むdivの後に続くものをすべて1つのクエリで取得しようとしています。だから私はこれをしました:divimg

これで、タグの属性を取得できましたimgが、次の兄弟のテキストを取得できません。クエリを分離すると(2つのクエリ-最初imgは兄弟用、2番目は兄弟用)動作します。しかし、1つのクエリだけでこれを行うにはどうすればよいですか?ちなみに、構文に誤りはありません。しかし、どういうわけか、ユニオンが機能しないか、兄弟コンテンツを正しく抽出していない可能性があります。

これがマークアップです(別のテキストで何度も繰り返されますid="someid_%randomNumber%

link_to_image.png...重要なテキストの両方を1つのクエリで取得したい...

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

php - xpath: xpath を使用してノードからデータを抽出します

売上ランク(この場合は5)だけを抽出したい

この商品を購入した、Amazonコミュニティーのメンバーである出品者、メーカー、または カスタマーが質問にお答えします

Web ページから : http://www.amazon.com/Mockingjay-Hunger-Games-Book-3/dp/0439023513/ref=tmm_hrd_title_0

これまでのところ、「Amazon ベストセラー ランク:」を選択すると、次のようになります。

私はPHPDOMDocumentDOMXPath.

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

php - phpDOMXpathエンコーディング

Webページからいくつかのデータを取得する必要があります。しかし、私はそれにいくつかのエンコーディングの問題があります。

これは、よく知られているドイツのWebページで問題を示すためのほんの少しのサンプルコードです。

私はこのテキストをウェブページから取得することを期待していました:
Alle Kritiker werden gespannt nach Wolfsburg schauen、dennderVfLwurdekräftigumgekrempelt。KönnendieKölnerdarausihrenNutzenziehen?

しかし、私のテストでわかるように、私はこれを取得します:
Alle Kritiker werden gespannt nach Wolfsburg schauen、dennderVfLwurdekräftigumgekrempelt。KönnendieKölnerdarausihrenNutzenziehen?

このページのメタタグは、UTF-8でエンコードされていることを示しています...
また、mb_detect_encodingは、UTF-8であることも示しています。

しかし、なぜ私はこのくだらないテキストを取り戻すのですか?

そして、テキストをISO-8859-1に変換すると、期待どおりの結果が得られます...

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

php - この XPath クエリで「トップ ノード」のみを選択するにはどうすればよいですか?

この XPath クエリを使用して、Xhtml ドキュメントに入力子孫を持たない要素を選択しています。

次の XHtml ドキュメントの例を使用します。

...そしてこのPHPコード:

私はこれを得る:head title div#three div#four div#seven div#eight

しかし、代わりにこれが欲しい:head div#three div#seven

XPath クエリの結果を取得し、DOMDocument から要素を削除します。title div#four div#eightは の子でhead div#three div#seven、既に結果に含まれています。

このクエリは任意の XHtml ドキュメントで使用されることに注意してください。目的の結果を得るには、XPath 1.0 クエリをどのように変更すればよいでしょうか?

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

php - PHP、CURL を使用して JavaScript サイトをスクレイピングする方法

重複の可能性:
PHP アプリケーション内で別のサイトから JavaScript をレンダリングするにはどうすればよいですか?

これはサイトhttp://www.oferta.pl/strona_v2/gazeta_v2/です。このサイトは完全に JavaScript で構築されています。PHPとcurlを使ってスクレイピングしたい。現在、DOMXPath を使用しています。左側のメニューには、選択するカテゴリがいくつかあります。そこには「形」が見えません。curl を使用してそのフォームを送信し、出力ページを破棄するにはどうすればよいですか?

私は file_get_contents() のみを使用しました。すべてのページを取得するわけではありません。どうすれば続行できますか?

NB : http://www.html-form-guide.com/php-form/php-form-submit.html「フォーム」を持つこの例を見つけました。しかし、指定したサイトには「フォーム」がありません。

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

php - Xpathを使用して要素を抽出する

Xpathを使用して、この要素から「#purchase=9780345527721」を抽出する必要があります

  • これは私が今までやったことです:

    $ nodelist_nook = Trim($ xpath_nook-> query( "// a [@ class ='buy-as-gift-link']")-> item(0)-> nodeValue);