適切なWebスクレイピングを見つけることができませんJavaベースのAPI。スクレイピングする必要があるサイトはAPIも提供していません。すべてのWebページをpageID
DOMツリーでHTMLタイトルやその他のものを抽出します。
Webスクレイピング以外の方法はありますか?
タイトルの抽出は難しくなく、多くのオプションがあります。スタックオーバーフローで「Java HTMLパーサー」を検索してください。それらの1つは Jsoup です。
ページ構造がわかっている場合は、DOMを使用してページをナビゲートできます。 http://jsoup.org/cookbook/extracting-data/dom-navigation を参照してください。
それは良いライブラリであり、私は私の最後のプロジェクトでそれを使用しました。
あなたの最善の策は、Selenium Web Driverを使用することです
スロー。 HtmlUnitのようにWebページにはヒットしませんが、あまり速くヒットしたくない場合があります。
Htmlunitは高速ですが、JavascriptとAJAXの処理が恐ろしいです。
HTMLUnitはWebスクレイピングに使用でき、ページの呼び出し、フォームへの入力および送信をサポートします。これをプロジェクトで使用しました。 Javaライブラリ。 詳細はこちらを参照してください
JauntもありますJava Web Scraping&JSON Querying- http://jaunt-api.com
mechanize for Javaはこれに適しています。WadjyEssamがHMLTにJSoupを使用しているように。mechanizeは、ナビゲーション、フォーム送信、ページスクレイピングをサポートする段階的なHTTP/HTMLクライアントです。 。
http://gistlabs.com/software/mechanize-for-Java/ (およびGitHubはこちら https://github.com/GistLabs/mechanize )
TagSoup、HTMLCleaner、NekoHTMLなどのHTMLパーサーを見てください。
これは、開発者がWebスクラッパーに期待できるすべての機能を備えた完全なスクラップフレームワークです。
これは、(jwht-htmltopojo)[ https://github.com/whimtrip/jwht-htmltopojo )libで動作します。
それらを一緒に使用すると、HTMLを直接POJOにマッピングし、古典的なスクラッピングの問題を数分で回避する素晴らしいスクラッパーを構築できます。
これが何人かの人々の助けになることを願っています!
免責事項、私はそれを開発した人です、あなたの意見を私に知らせてください!
大量のページまたはデータのスクレイピングを自動化する場合は、 Gotz ETL を試してください。
これは、実際のETLツールのように完全にモデル駆動型です。データ構造、タスクワークフロー、およびスクレイピングするページは、XML定義ファイルのセットで定義され、コーディングは不要です。クエリは、JSoupでセレクターを使用するか、HtmlUnitでXPathを使用して作成できます。
Webスクレイパーを使用すると、Webページから有用なコンテンツを抽出し、必要に応じて任意の形式に変換できます。
WebScrap ws= new WebScrap();
//set your extracted website url
ws.setUrl("http://dasnicdev.github.io/webscrap4j/");
//start scrap session
ws.startWebScrap();
これで、Web破棄セッションが開始され、Java usingwebscrap4j library。
タイトルの場合:
System.out.println("-------------------Title-----------------------------");
System.out.println(ws.getSingleHTMLTagData("title"));
キャッチフレーズの場合:
System.out.println("-------------------Tagline-----------------------------");
System.out.println(ws.getSingleHTMLScriptData("<h2 id='project_tagline'>", "</h2>"));
すべてのアンカータグの場合:
System.out.println("-------------------All anchor tag-----------------------------");
al=ws.getImageTagData("a", "href");
for(String adata: al)
{
System.out.println(adata);
}
画像データの場合:
System.out.println("-------------------Image data-----------------------------");
System.out.println(ws.getImageTagData("img", "src"));
System.out.println(ws.getImageTagData("img", "alt"));
Ul-Liデータの場合:
System.out.println("-------------------Ul-Li Data-----------------------------");
al=ws.getSingleHTMLScriptData("<ul>", "</ul>","<li>","</li>");
for(String str:al)
{
System.out.println(str);
}
完全なソースコードについては、これを確認してくださいtutorial。