3

HTMLページからデータを収集してデータベースに出力するスクレーパーを(Javaで)作成する方法を知る必要があります...どこから始めればよいかわからないので、これについて私に提供できる情報は素晴らしいでしょう。また、ここではあまりにも基本的または単純にすることはできません...ありがとう:)

4

5 に答える 5

2

まず、 JTidyHTML DOMのような Java のパーサーに慣れる必要があります。これは、ファイルから必要なものを抽出するのに役立ちます。必要なものが揃ったら、 を使用して.HTMLJDBCdatabase

この仕事に正規表現を使用したくなるかもしれません。しかし、しないでください。HTML は通常の言語ではないため、正規表現は適していません。

于 2010-03-18T15:32:18.290 に答える
1

私は初心者ですが、JSoup を使用してスクレイパーを実行していますが、非常に直感的で操作が簡単であることがわかりました。また、HTML、XML、RSS などの幅広いソースを解析することもできます。

私はhtmlunitを試してみましたが、ほとんど成功しませんでした。

于 2013-01-11T20:17:07.363 に答える
0

HTMLページをスクレイピングするプロジェクトでloboブラウザAPIを正常に使用しました。loboブラウザプロジェクトはブラウザを提供しますが、その背後にあるAPIを非常に簡単に使用することもできます。また、javascriptを実行し、そのjavascriptがDOMを操作する場合、DOMを調査するときにそれもDOMに反映されます。つまり、APIを使用すると、ブラウザを模倣できます。また、Cookieなどを操作することもできます。

HTMLからデータを取得するために、最初にHTMLを有効なXHTMLに変換します。これにはjtidyを使用できます。XHTMLは有効なXMLであるため、XPathを使用して必要なデータを非常に簡単に取得できます。生のHTMLからデータを解析するコードを書き込もうとすると、コードはすぐに混乱します。したがって、XPathを使用します。

データを取得したら、JDBCを使用してDBに挿入するか、SQLの書き込みが多すぎないようにする場合はHibernateを使用できます。

于 2010-03-18T16:07:18.303 に答える
0

非常に多くの Web サイトが、不正な HTML コードで構築されています。HtmlCleanerなどを使用して、解析するソース コードをクリーンアップする
ことが不可欠です。 次に、XPath を使用してノードを抽出し、正規表現を使用して、ページから抽出した文字列の特定の部分を解析できます。

少なくともこれは私が使ったテクニックです。

HtmlCleaner から返された xHtml を、アプリケーションと解析しようとしているリモート ページとの間の一種のインターフェイスとして使用できます。これに対してテストする必要があります。リモート ページが変更された場合は、HtmlCleaner によってクリーンアップされた新しい xHtml を抽出し、XPath クエリを再調整して必要なものを抽出し、新しいインターフェイスに対してアプリケーション コードを再テストするだけです。

マルチスレッドの「スクレーパー」を作成する場合は、HtmlCleaner がスレッド セーフではないことに注意してください (こちらの記事を参照してください)。
この投稿では、XPath を使用して正しくフォーマットされた xHtml を解析する方法について説明します。
幸運を!;)

注: Scraper を実装した時点で、HtmlCleaner は、解析したいページを正規化するのに優れていました。場合によっては、jTidy が同じ仕事をするのに失敗していたので、試してみることをお勧めします。

于 2010-03-18T16:05:47.300 に答える
0

JTidyを使用すると、HTML からデータをスクラップできます。その後、JDBCを使用できます。

于 2010-03-19T04:31:36.717 に答える