【问题标题】:BeautifulSoup output is always " b' ' "BeautifulSoup 输出始终为“b''”
【发布时间】:2017-06-27 15:37:47
【问题描述】:

不管我用什么html文件,我的输出都是重复b''。

from bs4 import BeautifulSoup
html_doc = "C:/Users/George/Desktop/bsTest"
soup = BeautifulSoup(html_doc, 'html.parser')

print(soup.prettify())

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 尝试将 .html 添加到 bsTest 的末尾
  • 感谢您的快速回复,Splinxyy。遗憾的是,这并没有改变输出。
  • 是什么让您认为可以将文件路径传递给BeautifulSoup 构造函数?我建议在尝试使用它之前阅读该模块的文档。
  • 能否提供html_doc的输出?在脚本中打印并生成输出。
  • 阅读文档。正如您所发现的那样,通过猜测进行编程是行不通的。

标签: python html beautifulsoup


【解决方案1】:

您不能像尝试那样只传递文件路径。请参考文档here

with open("C:/Users/George/Desktop/bsTest") as fp: soup = BeautifulSoup(fp, 'html.parser')

【讨论】:

  • 感谢您的建议。当我运行编辑后的代码时,我的输出如下: <_io.textiowrapper name="C:/Users/George/Desktop/HTMLs/temp_10_40.html" mode="r" encoding="cp1252">
  • 似乎正确。现在您需要按照文档进行实际解析。
【解决方案2】:

在尝试解析变量之前尝试打开文档。

from bs4 import BeautifulSoup
html_doc = "C:/Users/George/Desktop/bsTest"
soup = BeautifulSoup(open(html_doc).read(), 'html.parser')

print(soup.prettify())

【讨论】:

  • 感谢您的建议。当我运行编辑后的代码时,我的输出如下: <_io.textiowrapper name="C:/Users/George/Desktop/HTMLs/temp_10_40.html" mode="r" encoding="cp1252">
  • 我忘记将 read() 方法添加到 open 中。我更新了答案。试一试,让我知道它是否有效。
  • 使用更新后的代码时,输​​出不变。
猜你喜欢
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 2018-01-14
  • 2014-06-04
  • 1970-01-01
相关资源
最近更新 更多