私は Web クローラーを実装しており、Crawler4j ライブラリーを使用しています。Web サイトのすべてのリンクを取得できません。Crawler4j を使用して 1 ページのすべてのリンクを抽出しようとしたところ、一部のリンクが欠落していました。
Crawler4j バージョン:crawler4j-3.3
使用した URL : http://testsite2012.site90.com/frontPage.html
このページのリンク数 : ほぼ 60 のうち 4 ~ 5 が繰り返しリンクされています
クローラー4jが提供したリンクの数: 23
これはページ上の URL のリストで、これは Crawler4j によって指定された URL のリストです。
リンクを抽出するためにcrawler4jを使用して「HtmlContentHandler.java」ファイルを調べました。これでは、「src」および「href」リンクに関連付けられたリンクのみが抽出されています。
これらのファイルの違いを見つけます。Crawler4j には、'src' または 'href' 属性に関連付けられておらず、'script' タグの下にあるリンクがありません。 これは、crawler4j がクロールしなかったリンクのリストです。
このページのすべてのリンクを抽出するにはどうすればよいですか? HTML 解析ページで文字列操作 ('http' の検索など) を行う必要がありますか、それとも 'HtmlContentHandler.java' ファイルのコードを変更する必要がありますか?
どちらが最善の方法ですか?
文字列操作を行ってこのページのすべてのリンクを抽出しても、Crawler4j はそれ自体でクロールされたリンクを使用して Web サイトをクロールしているため、一部のページを見逃すことはありませんか?