link
たとえばJava.sg/downloads
とすると、さまざまなzipファイルをクロールしてダウンロードする必要があります。このタスクを実装するための既存のapache commons library
はありますか?http:sのプロトコルでファイルをダウンロードするためのapache共通ライブラリ
0
A
答えて
-1
0
それはサブだApacheのライブラリーがあるかどうかは分かりませんが、私はページをクロールするためhtmlunitを使用していますし、すべての以下のコードを含むページ。ダウンロードは、URLConnectionを介して行うことができます。 this page。
public static void walkAllHtmlPages(final String startURL) throws IOException, SAXException {
final WebClient webClient = createWebClient();
try {
final HtmlPage page = webClient.getPage(startURL);
try {
Set visitedURLs = new HashSet();
List links = page.getAnchors();
// now recursively walk all pages
recursivelyFollowLinks(webClient, links, visitedURLs);
} finally {
if(page != null) {
page.cleanUp();
}
}
} finally {
webClient.closeAllWindows();
}
}
public static WebClient createWebClient() {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
webClient.setTimeout(30000);
webClient.setJavaScriptEnabled(false);
webClient.setCssEnabled(true);
webClient.setAppletEnabled(true);
webClient.setRedirectEnabled(true); // follow old-school HTTP 302 redirects - standard behaviour
webClient.setHTMLParserListener(null);
webClient.setIncorrectnessListener(new IncorrectnessListener() {
@Override
public void notify(String message, Object origin) {
// Swallow for now, but maybe collect it for optional retrieval?
}
});
webClient.setCssErrorHandler(new SilentCssErrorHandler());
return webClient;
}
private static void recursivelyFollowLinks(WebClient webClient, List links, Set visitedURLs) throws SAXException, IOException {
try {
for(HtmlAnchor link : links) {
String url = link.getHrefAttribute();
if (!visitedURLs.contains(url)) {
visitedURLs.add(url);
visitSubLink(webClient, visitedURLs, link, url);
}
}
} catch (RuntimeException e) {
throw new IllegalArgumentException("While retrieving links: " + getLinksAsString(links), e);
}
}
private static void visitSubLink(WebClient webClient,
Set visitedURLs, HtmlAnchor link, String url) throws IOException, SAXException {
URL current = link.getPage().getUrl();
try {
HtmlPage ret = (HtmlPage)link.click();
List sublinks = ret.getAnchors();
recursivelyFollowLinks(webClient, sublinks, visitedURLs);
} catch (RuntimeException e) { // NOPMD
throw new RuntimeException("While clicking link: " + link.getId() + " to " + url, e);
}
}
関連する問題
- 1. SharePoint共通ファイル...ダウンロードする場所は?
- 2. apacheの共通ライブラリファイルアップロード
- 3. C++ファイルのアップロード/ダウンロードのためのライブラリですか?
- 4. youtubeからMP3ファイルをダウンロードするためのPythonライブラリ
- 5. ファイルをダウンロードするためのC++ async HTTPライブラリ
- 6. これは共通ライブラリを管理するための良いアプローチですか?
- 7. ファイル共有ホスティングのプロトコル
- 8. ソーシャルメディアで共有するアンドロイドの共通ライブラリですか?
- 9. Android:ダウンロードしたファイルを共有する
- 10. ファイルサーバからファイルをダウンロードするために使用されるプロトコル
- 11. Apache Kylin HBase共通ライブラリが見つかりません
- 12. 通常の共有ホスティングサービスでApache Axis2 Webservice
- 13. FTPの実装、Apache共通ライブラリを使用せずにサーバーからファイルを一覧表示する
- 14. 共有されたmmapファイルを管理するためのライブラリまたはツール
- 15. ダウンロードのキャッシュのためのPHPライブラリ
- 16. カスタムメイドの共有ライブラリのためのConfig.cmakeファイル
- 17. セグメント化ダウンロードのためのLinuxライブラリ
- 18. 複数のプロジェクトで共通のファイルを共有するためのpythonic方法は何ですか?
- 19. SQLCLR Community Extensionsまたは共通ライブラリ
- 20. Eclipseで共通のライブラリを共有するAndroidアプリを作成する
- 21. Windowsで共有ライブラリを事前にロードするためのLD_PRELOAD
- 22. 複数のJavaプロジェクトで共通のライブラリを設定する
- 23. 直接共有リンク(Python)からExcelファイルをダウンロードするための認証
- 24. リモートサーバーと通信するためのアーキテクチャとプロトコル
- 25. でsetProgressメソッドは、私のファイルは、ファイルをダウンロードするための
- 26. 複数のWARでライブラリにアクセスするための共通インタフェース - これはjbossで可能ですか?
- 27. 複数のプロジェクトにまたがる共通ライブラリのgit構造
- 28. VB.Net:複数のファイルに共通のコードを含める
- 29. Android:たくさんの種類のファイルをダウンロードするライブラリ
- 30. Cの共通データ構造ライブラリ
なぜdownvoteですか? Wgetは単独で使用することも、Javaから呼び出すこともでき、堅牢でテストされたパッケージに必要なすべての機能が含まれています。 – dotancohen