2016-07-04 4 views
-1
`self.urlOpen=urllib.request.urlopen("http://facebook.com") 
    self.content=self.urlOpen.read() 
    soup=BeautifulSoup(self.content,"html5lib") 
    self.links=soup.find_all("a")` 

'のcharmap' コーデックは位置で文字をエンコードすることはできません....BeautifulSoup encoding.bytesにはfind_allという属性がありませんか?

ので、私は self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content,"html5lib") soup=soup.encode("utf-8") self.links=soup.find_all("a")

スープ変数をエンコードしようとすると、オブジェクトが持っている 'バイト' find_allという属性がありません

私は試しました self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content.decode("utf-8","ignore"),"html5lib") self.links=soup.find_all("a")

が、同じエラーが、私はそれをエンコードする方法を次に

を発生しますか?

+0

デバッグヘルプを求めるときに完全なトレースバックを含めます。 –

+0

また、 'soup.encode( 'utf-8')'はバイト文字列を作成するだけです(https://www.crummy.com/software/BeautifulSoup/bs4/doc/#non-pretty-printing)。もちろん、 'find_all()'メソッドはありません。 –

+0

あなたはおそらく[this](http://stackoverflow.com/questions/14284269/why-doesnt-python-recognize-my-utf-8-encoded-source-file)に苦しんでいるでしょう:あなたの端末は処理できませんbeautifulsoupなどの問題の代わりに出力。 –

答えて

0

問題点は何ですか?
はエンコーディングエラーを投げてはならないので、encodebs4.BeautifulSoupオブジェクトにコールするべきではありません。encodeはスープではなく、バイトを返します。 - find_allに電話することはできません。

どこでもsoup.prettify()を使用していますか?その場合、おそらくエラーを投げている行でしょう。コードのMinimal, Complete and Verifiable exampleを含めてください。

+0

iamはsoup.prettify()を使用していません –

+0

しかし、私の質問は、find_allを呼び出せるようにそれをエンコードする方法です。 –

+1

find_allを使用できるはずです。コードの代表例とエラーメッセージの完全なトレースを投稿してください。 – Nee

関連する問題