2017-09-01 8 views
0

私は問題があります。 PYTHON2のみ。Bs4は非常に遅いオブジェクトを作成します

r = self.session.get('http://..................') 
print "CREATE BS" 
print datetime.now() 
soup = BeautifulSoup(r.content, 'html.parser') 
print "CREATE BS END" 
print datetime.now() 

結果は次のとおりです。

CREATE BS 
2017-09-01 11:45:22.822256 
CREATE BS END 
2017-09-01 11:46:56.992892 

私はこれが正常であるとは思わない:1,5分はHTMLを解析します。 1週間前にこのソースコードに問題はありませんでした。 bs4に関する問題を知っている人は誰ですか?

python3はすべて約3秒です。

+0

あなたは何のURLを使っていますか?これがなぜ起こっているのか、インターネットのスピードはどうですか? :) –

+0

は 'lxml'パーサを使用しています。これはhtmlパーサと比べて非常に高速です。 lxmlをインストールする必要があります。 – Stack

+0

URLの仲間やインターネットの速度に関係なく、私は最初の印刷の前にリクエストします;)問題は解析です。 lxmlの解析には同じ問題があります....非常に遅いです。私は – simopopov

答えて

0

私は信じられませんが、問題はエンコーディングにありました:D bs4ソースコードで多くのデバッグを行った後、私は解決策を見つけました。ソリューションは:

soup = BeautifulSoup(r.content, 'lxml', from_encoding="utf8") 

このfrom_encoding = "utf8"はすべての魔法を作ります。しかし、これは間違いなくbs4のバグです。私はpython3には問題がないと言ったので、これなしで動作するはずです。

+1

この答えはあなたのために働いた場合は、あなた自身の答えを受け入れることができます。 – serk

関連する問題