从美丽的汤中抓取信息并将其放入文本文件中?

时间:2012-10-17 23:00:49

标签: python beautifulsoup urllib

我已经开始学习如何使用urllib和beautifulsoup从网站上抓取信息。我想从这个页面中获取所有文本(在代码中)并将其放入文本文件中。

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)

谢谢:)

2 个答案:

答案 0 :(得分:0)

您可以尝试使用html2text

import html2text as htmlconverter
print htmlconverter.html2text('<HTML><BODY>HI</BODY></HTML>')

答案 1 :(得分: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()