1

urllib と beautifulsoup を使用して Web サイトから情報を収集する方法を学び始めました。このページから (コード内の) すべてのテキストを取得して、テキスト ファイルに入れたいと考えています。

import urllib
from bs4 import BeautifulSoup as Soup
base_url = "http://www.galactanet.com/oneoff/theegg_mod.html"



url = (base_url)
soup = Soup(urllib.urlopen(url))

print(soup.get_text())

これを実行すると、テキストが取得されますが、すべての文字の間にスペースを入れて出力され、HTML が表示されますが、理由は不明です。

i   n   '   >      Y   u   p   .       B   u   t       d   o   n      t       f   e   e        

そのように、何かアイデアはありますか?

また、この情報をテキスト ファイルに入れるにはどうすればよいでしょうか。

(beautifulsoup4 を使用し、ubuntu 12.04 および python 2.7 を実行)

ありがとうございました :)

4

2 に答える 2

0

エンコーディングに問題があったため、コードを少し変更してから、結果をファイルに出力する部分を追加しました。

import urllib
from bs4 import BeautifulSoup as Soup

base_url = "http://www.galactanet.com/oneoff/theegg_mod.html"

url = (base_url)
content = urllib.urlopen(url)
soup = Soup(content)
# print soup.original_encoding
theegg_text = soup.get_text().encode("windows-1252")

f = open("somefile.txt", "w")
f.write(theegg_text);
f.close()
于 2012-10-17T23:56:58.460 に答える
0

あなたは使用してみることができますhtml2text

import html2text as htmlconverter
print htmlconverter.html2text('<HTML><BODY>HI</BODY></HTML>')
于 2012-10-17T23:42:34.840 に答える