0

このようなルールで SgmlLinkExtractor を使用してイメージマップからリンクを抽出するスクレイピークロールスパイダーがあります。

Rule(SgmlLinkExtractor(allow_domains=('pressen-haas.de'),
                       restrict_xpaths=('//map[@name="bildmaschinen"]')))

ご覧になりたい場合は、開始 URL はhttp://www.pressen-haas.de/neu//machines.php?lang=enです。結果の URL はhttp://www.pressen-haas.de/neu//masch_cat.php?lang=en&phid=0の形式で、phid パラメータは 0 から 8 までです。問題は、スパイダーがこれらのページを取得するときに、ブラウザーに URL を入力した場合にそこにあるすべての情報が利用できないことです。私はそれをテストするためにコールバックを書きました。

hxs = HtmlXPathSelector(response)
print hxs.select('//text()').extract()

そこにあるものを確認するには、ブラウザに URL を入力して 2 番目の URL パラメータ ( http://www.pressen-haas.de/neu/masch_cat.php?lang=en ) を削除した場合とまったく同じ結果が表示されます。

スパイダーが正しい URL をクロールしていることを確認しました。クロールされた URL をスパイダー出力ログからブラウザーにコピーでき、それらは正常に動作します。ブラウザーでこれらの URL を表示できるのに、スパイダーが別のものを表示するのはなぜですか?

前もって感謝します。

4

1 に答える 1

0

スパイダーがスクレイプしようとしたページのhtmlは非常にひどく形成されており、これがスパイダー自体の問題ではなく、問題であると確信しています。

于 2012-07-30T17:28:23.820 に答える