0

このエラーがわかりません。「コンテンツ」を書き込み可能にするにはどうすればよいですか?

from bs4 import BeautifulSoup

soup = BeautifulSoup(open("http://www.asdf.fi/asdf.html"))

content = soup.find(id="content") 

with open("test.html", "a") as myfile:
    myfile.write(content)

エラー:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: expected a character buffer object
4

2 に答える 2

1

まず、を使用してWebページを開くことはできませんopen()。ライブラリを使用する必要がありますurllib(実際にはライブラリを使用しているmechanizeので、使いやすいです)。

次に、に渡すことができないオブジェクトをopen()返します。あなたは次のようなものを書く必要がありますfileBeautifulSoup()

soup = BeautifulSoup(open(filename).read())

.read()ファイル全体を読み取り、を呼び出すために使用できる文字バッファを返しますBeautifulSoup()

于 2012-11-04T18:27:50.147 に答える
0

わかりました、いくつか検索した後...

with open("test.html", "a") as myfile:
    myfile.write(content.encode('utf-8'))
于 2012-11-04T18:26:09.957 に答える