問題タブ [html-content-extraction]
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 コンテンツ抽出の最新技術とは?
Gupta & Kaiser (2005) Extracting Content from Accessible Web Pagesなど、HTMLコンテンツ抽出に関する多くの学術研究が行われています。後者の実践が前者の考えをどれほどうまく反映しているか。ベストプラクティスは何ですか?
優れた (特にオープン ソースの) 実装へのポインタと、実装に関する優れた学術調査は、私が探している種類のものです。
最初の追記: 正確に言うと、私が求めている調査の種類は、学術文献からの基準と多数の既存の実装の両方を議論し、実装がどれほど失敗したかを分析する論文 (公開、未公開、何でも) です。基準の観点から。そして、実際には、メーリング リストへの投稿も有効です。
2 番目の追記明確にするために、私が受け入れた Peter Rowell の回答の後、この質問が 2 つのサブ質問につながることがわかります。解決策、および (ii) 未解決の問題または粗悪品 (主にサイトに追加されたボイラープレートと販促資料) と肉 (ページが興味深いと思われる種類の人々が実際に関連性があると見なすコンテンツ) から分離すること。 、新しい答えは、肉からの粗悪品の問題に明示的に対処する必要があります。
php - PHP:cURL、HTMLスキャンからのデータ
特定のdiv内のテキストについてHTMLページをスキャンするにはどうすればよいですか?
algorithm - Web ページのコンテンツを識別するために使用できるアルゴリズム
ブラウザーに Web ページをロードしており (つまり、その DOM と要素の配置の両方にアクセスできます)、ブロック要素 (またはこれらの要素の並べ替えられたリスト) を見つけたいと考えています。テキストの連続ブロック)。目標は、メニュー、ヘッダー、フッターなどを除外することです。
python - Beautiful Soup Python モジュールを使用してタグをプレーン テキストに置き換える
Web ページから「コンテンツ」を抽出するためにBeautiful Soupを使用しています。私は何人かの人々が以前にこの質問をしたことを知っています、そして彼らは皆美しいスープを指摘されました、そしてそれが私がそれを始めた方法です.
ほとんどのコンテンツを正常に取得できましたが、コンテンツの一部であるタグでいくつかの問題に直面しています。(私は基本的な戦略から始めています: ノードに x-chars を超えるものがある場合、それはコンテンツです)。例として、次の html コードを見てみましょう。
上記のコードを使用して長いテキストを取得すると、タグで中断されます (識別されたテキストは「そして願わくば..」から始まります)。そこで、次のようにタグをプレーンテキストに置き換えようとしました:
Beautiful Soup は文字列を NavigableString として挿入し、len(x) > 20 で findAll を使用すると同じ問題が発生するため、上記は機能しません。最初に正規表現を使用して html をプレーン テキストとして解析し、すべてクリアします。不要なタグを削除してから、Beautiful Soup を呼び出します。しかし、同じコンテンツを 2 回処理することは避けたいと思います。これらのページを解析して、特定のリンク (Facebook の共有と非常によく似ています) のコンテンツのスニペットを表示できるようにしています。速くなると思います。
私の質問: Beautiful Soup を使用して「タグをクリア」し、「プレーン テキスト」に置き換える方法はありますか。そうでない場合、そうするための最良の方法は何ですか?
ご提案いただきありがとうございます。
更新: Alex のコードは、サンプルの例で非常にうまく機能しました。また、さまざまなエッジケースを試しましたが、すべて正常に機能しました(以下の変更を加えて)。そこで、実際の Web サイトで試してみたところ、困惑する問題に遭遇しました。
上記のコードを実行すると、次のエラーが発生します。
HTMLコードを見ると、「最新の状態に保つ..」には以前の兄弟がありません(アレックスのコードを見るまで、以前の兄弟がどのように機能したかわかりませんでした。テストに基づいて、「テキスト」を探しているように見えますですから、前の兄弟がいない場合、a.previousSibling is None と a;nextSibling is None の if ロジックを通過していないことに驚いています。
私が間違っていることを教えてください。
-エコグニウム
screen-scraping - スクリーンスクレイパーを使用したデータの抽出
特定の Web サイトから「お問い合わせ」情報を抽出するために必要なスクリーンスクレイパーの推奨事項を探しています。
良い(優先無料の)スクリーンスカーパーを入手できるアイデアはありますか?
regex - 正規表現で ID を使用してテーブルからコンテンツを取得するにはどうすればよいですか?
必要なコンテンツを取得するために、html 文字列をソートする必要があります。ここで、ID を持つテーブル内のテーブル行をループする必要があります。正規表現でこれを行うにはどうすればよいですか?
jquery - jQuery を使用してコンテンツを取得する
次の html ブロックからいくつかの変数を取得しようとしています。もしよろしければ、お役に立てれば幸いです。
関数が走査して、 each のsrc値と、 eachのコンテンツを#services
取得するようにしたいと思います。img
<h2>
これは私がこれまでに持っているものです...
php - PHP セッション変数
ユーザーは、新しいページを開くリンクをクリックします (以下のコード)。私の問題は、この新しいページを開くと、新しいセッション ID が作成されることです。これが起こらないようにするにはどうすればよいですか?
html-content-extraction - 他のサイト コンテンツでサイトを自動的に更新する方法。
頻繁に (1 分間に 2 回) 更新される他のサイト コンテンツでサイトを更新する方法は?
python - BeautifulSoup を取得して特定のものを見つける
私は、さまざまな科学雑誌の Web サイト用の基本的な HTML スクレーパーをまとめようとしています。具体的には、要約または紹介の段落を取得しようとしています。
私が現在取り組んでいるジャーナルは Nature で、サンプルとして使用している記事は次の URL で見ることができます。http://www.nature.com/nature/journal/v463/n7284/abs/nature08715.html .
ただし、そのページから要約を取得することはできません。タグ間のすべてを検索していますが、<p class="lead">...</p>
それらを分離する方法がわかりません。私はそれが次のような単純なものになると思った
Python 2.5、BeautifulSoup 3.0.8 を使用してこれを実行すると、「None」が返されます。コンパイル/インストールが必要なもの (lxml など) を使用するオプションはありません。BeautifulSoup は混乱していますか、それとも私ですか?