1

私は 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 サイトをクロールしているため、一部のページを見逃すことはありませんか?

4

1 に答える 1

0

正規表現を使用してリンクを見つけてみてください。

ここで例を見ることができます。

于 2012-07-03T08:59:19.907 に答える