-1

BeautifulSoup を使用してさまざまな Web ページをスクレイピングしていますが、同じ URL に対して一貫性のない結果が得られることがよくあります。これは、同じ Web ページを頻繁にスクレイピングしているためだと思います。同じコマンドを数回実行した場合に、得られる「スープ」が一貫していることを確認するにはどうすればよいですか? これを処理する良い方法はありますか?

soup = BeautifulSoup(urllib2.urlopen(url))

if len(soup.find_all("var","model")) == 0:
   print "test"  # Inconsistent for the same URL if run several times in a row 

編集:これをループします: len(soup.find_all("var","model")), ランダムな方法で、時間の経過とともに2つの異なる結果(0と2)が得られます。それが一貫性のないという意味です。どこで私が間違っている可能性があるかについてのヒントはありますか?

4

2 に答える 2

1

ページが実際には静的ではないか、ページがスープ変数で部分的にしか読み込まれない原因となっている問題があります。スープにロードされたツリーのフルサイズを示す行を一番下に追加します (len() が機能するか十分かは不明です)。これにより、原因がソースにあるのか、BeautifulSoup コードにあるのかがわかります。

于 2012-10-12T08:20:50.737 に答える
0

わかりました。それは美しいスープではなかったことがわかりました。同じURLを数回取得し、htmlを書き留めましたが、毎回小さな違いがあることがわかりました。ページは実際には静的ではありません

于 2012-10-12T12:27:48.983 に答える