問題タブ [html-tree]
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.
html - HTML :: TreeBuilderで直接の子孫だけを見つける方法は?
次のようなHTMLツリーがあるとします。
<li>
でマークされている要素を選択するにはどうすればよい(*)
ですか?それらは最初の<ul>
要素の直接の子孫です。
これが私が最初の<ul>
要素を見つける方法です:
今$ul
、私は持っていますが、私が次のようなことをするとき:
また<li>
、HTMLツリーの奥深くに埋め込まれている要素も検出します。
<li>
最初の要素の直接の子孫である要素だけを見つけるにはどうすればよい<ul>
ですか?数は不明です。(例のように最初の4つだけを選択することはできません)。
html - リンクを抽出する HTML Treebuilder XPath
Web ページからすべてのリンクを抽出する基本的なスクリプトを作成しています。これは Perl で書かれており、WWW::Mechanize と HTML::Treebuilder::Xpath モジュールを使用しています。どちらも CPAN からインストールしました。
WWW::Mechanize だけを使用して簡単に実行できることはわかっていますが、XPath を使用して実行することも学びたいと考えています。
そのため、スクリプトは Web ページ全体を解析し、すべてのアンカー タグの href 属性をチェックし、リンクを抽出してコンソールに出力/ファイルに書き込みます。以下のスクリプトでは use strict を使用していないことに注意してください。XPath を使用して HTML ツリーをトラバースするという概念を明確にして理解するためにこれを書いているだけだからです。
ここにスクリプトがあります:
そして、それはエラーを出します:
スクリプトを次のように変更しました。
エラー:
href 属性の値を出力する方法がわかりません。
$nodes は、すべての href 属性のリストを保持する必要がありますか? 値を格納するのではなく、値へのポインタを格納すると思いますか?
例を検索して読んでみましたが、どうすればよいかわかりません。
ありがとう。
html - perl スクリプトによる HTML パーサー
私のコードは出力を印刷していません。$tree->find("p")
NULL を返しています。
perl - PerlのHTML::Element-子孫だけをHTMLとしてダンプします
解析している一致したノードの内容を出力しようとして問題が発生しました。
私はHTML::TreeBuilder::XPath
ノードを見つけるために使用しています(このクラスにはdivが1つだけあります):
HTML::Element
ノード(私が信じているように返されます)を見つけます$description->as_HTML
が、要素自体も含みます-要素内にすべてをHTMLとして含める必要があります:
私は明らかにそれを正規表現で取り除くことができますが、それは厄介な感じで、それを行うための機能がどこかに欠けていると確信していますか?
perl - HTML::TreeBuilder でタグの一部ではない本文のテキストを抽出する
次のような醜い html がプログラムにメールで送信されます。
...簡潔にするために残りを切り取りました。
HTML::TreeBuilder を使用してテーブル要素を引き出すことはできますが、他の手段に頼らずに「名前:」と「クエリ用語」を上から引き出す方法がわかりません。
上記の $root->dump は次のようになります。
@0.1.0.2 と @0.1.0.4 の間の裸のテキストを取得する方法はありますか
ありがとう!トッド
perl - HTML::TreeBuilder を使用して HTML ファイルの列の値を更新する
複数のテーブルを含む HTML ファイルがあります (すべてのテーブルには同じ数の列と同じ列名があります)。表は他の HTML タグで区切られています。
各テーブルの各行について、セル 1 とセル 3 の値を変更したいと思います。
これは私がこれまでに持っているものです(@depeszに感謝):
HTML ファイル内のすべての行を反復処理するのに最適です。列 1 と列 3 のテキストを変更する最後の部分を行う方法がわかりません。
linux - HTML::TreeBuilder::XPath のインストールに失敗しました
バージョン 0.13 の ** HTML::TreeBuilder::XPath ** をインストールしようとしていますが、失敗します。
誰でも何が原因であるかを示唆できますか。
perl - perl html treebuilder エラー状態の処理方法
タスクは非常に単純です: URL にアクセスし、結果に基づいて解析します。エラー (404、500 など) が発生した場合は、適切な処置を行ってください。最後のピースは、私が問題を抱えているものです。
現在使用している両方のコードをリストしました。長い方 (LWP+TreeBuilder) は両方の条件で機能します。短い方 (TreeBuilder) は最初の条件では機能しますが、エラー条件では機能しません。TreeBuilder を使用していて、サイトが 404 またはその他のエラーを返した場合、スクリプトは単純に終了します。何か案は ?
機能するより長いコード
ない短いもの