【问题标题】:Reading a txt file in url into BeautifulSOUP将 url 中的 txt 文件读入 BeautifulSOUP
【发布时间】:2015-02-04 20:53:45
【问题描述】:

我有一些指向 txt 文件的 url 地址,该文件包含 html 代码。这是一个示例链接:

http://www.sec.gov/Archives/edgar/data/70858/000119312507058027/0001193125-07-058027.txt

我想用BeautifulSoup用这样的代码阅读这段html代码:

from bs4 import BeautifulSoup
import urllib2 

url =    "http://www.sec.gov/Archives/edgar/data/70858/000119312507058027/0001193125-07-058027.txt"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
print (soup.prettify())

但是,我遇到了很多错误,例如:

File "C:/Users/.../aa.py", line 7, in <module> print (soup.prettify()) File "build\bdist.win32\egg\bs4\element.py", line 1097, in prettify return self.decode(True, formatter=formatter)

我怀疑会发生这种情况,因为 URL 是 txt 文件而不是 html。我对吗?如果是这样,有人可以告诉我这里的解决方案是什么吗?

【问题讨论】:

  • 你是对的。 BeautifulSoup 专门用于处理 html 和 xml 文件。如果您只想要纯文本,那应该位于您称为page 的变量中。尝试print page 确认您想要的文字在那里。
  • 非常感谢@eigenchris!是的,页面在那里,但是因为我想从那种代码中提取一些表,所以我需要以某种方式将它放入 bs。你对此有什么建议吗?
  • 您可以删除不在&lt;html&gt;&lt;/html&gt; 标签之间的所有内容。从那里你会有一个有效的 html 文件,你可以用 BeautifulSoup 解析。

标签: python beautifulsoup


【解决方案1】:

您可以尝试将文本文件的 HTML 部分(来自标签)输入到 Beautiful soup 中,我想它会中断,因为文本文件的开头不包含任何 HTML。

【讨论】:

  • 非常感谢!但是,您能否更具体一点,提供 html 部分是什么意思?我怎样才能做到这一点?对不起我的无知!
  • 在将字符串传递给 BeatifulSoup 之前对其进行一些解析。例如,不要只传递整个文本文档,而是将其从 &lt;DOCUMENT&gt;&lt;/DOCUMENT&gt; 的部分提供给它
  • 尝试跳过前几行文本
  • 您真正想做的是从文本文档中获取 html 部分(目前,BeautifulSoup 不知道如何处理它)
  • 一个例子会很有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多