0

Scrapy クローラーを使用して、10 万ページを超える Web サイトをクロールしています。この場合、速度が大きな懸念事項です。hxs.select('//*').re('something')今日、それが よりもずっと遅いことに気付きましたhxs.select('//script/text()').re('something')。その理由を説明できる専門家はいますか?

私が理解しているように、クローラーは、使用する xpath セレクターに関係なく、ページ全体をダウンロードする必要があります。したがって、xpath は速度にまったく影響を与えません。

ヒントをありがとう。

4

3 に答える 3

1

ドキュメント全体で「何か」を探す可能性があるので、おそらくまだを使用する必要がありますhxs.select('//*').re('something')

text()速度の問題について:答えは、4kの大きさのドキュメントで「何か」という単語を検索すると、もちろん、そのテキスト内でその単語を検索した後、ドキュメントをフィルタリングするよりも時間がかかるということです。

于 2012-04-18T21:04:57.740 に答える
1

これはダウンロード速度とは関係ありません。

XPath//*はページ全体を選択します。XPath//script/text()は、スクリプト要素内のテキストのみを選択します。もちろん、re()呼び出しで検索するテキストが少ないため、2 番目の方が高速です。

于 2012-04-18T20:58:08.867 に答える
0

XPath は間違いなくクローラーの速度に影響を与えます。クローラーはページをダウンロードしますが、Xpath はクローラーがダウンロードした Html を処理します。そのため、ページが大きい場合、xpath は Html 全体を処理するのに時間がかかります。

于 2012-04-20T14:33:56.777 に答える