-1

我试图通过将 HTML 传递到单个字符串对象来解析一些 HTML。但是,当我粘贴 HTML 时,我会在 pyCharm 中得到大量下划线,我怀疑这是因为格式(见截图)。这会破坏我的程序,因为我在 \n\n 上进行拆分,这应该代表一个空行。

这是我粘贴代码时得到的:

坏PyCharm

但是,这就是我想要的,当我用 \n\n 分割字符串时没有问题:

好PyCharm

我尝试将要用作字符串的 html 粘贴到记事本中并转换为纯文本,但无济于事。我还关闭了 PyCharm 中的任何“自动缩进”功能。谁能告诉我如何解决这个问题,这样我就可以粘贴更长的 HTML 块(结构相同,用空行分隔)并且我的代码仍然可以工作?或者,当我粘贴长长的 HTML 块时,现在有什么方法可以分割字符串(我的直觉是添加了一些选项卡,但我无法弄清楚)?!

4

1 回答 1

1

我会说这是一种帮助方式,无需访问真正的 HTML/XML 文本(而不是图像),并且看到两个示例文本在相互比较时看起来不同

  1. 当您使用三重单引号/双引号时,您的代码不应该因为文本变量内部的错误而中断——来自PEP-0257的题外话评论是您对文档字符串使用三重引号而不是多行文本(在您使用三重引号)
  2. 您可以随时在线尝试任何 HTML/XML 格式化程序并将文本粘贴到其中,然后再将其添加到 IDE 脚本中。就像您使用 JSON 格式的内容来检查有效性一样。这些格式化程序有助于根据解析标准检测文本中的错误
  3. 另一种选择,因为您使用的是 BeautifulSoup,所以将您的“fullHtmlString”变量作为参数传递给“lxml”解析器(您必须在操作系统级别 [libxml2libxslt] 并通过 pip [pip3.6 install lxml作为示例] 之前安装它)并让 BeautifulSoup 帮助您在打印 HTML/XML 文本时看到明显错误的地方

    soup = BeautifulSoup(fullHtmlString, 'lxml')
    print(soup.prettify())
    
  4. 您可以在 PyCharm 中一起使用“重新格式化代码”和“填充段落”选项来格式化整个代码,尤其是当根据PEP-0008超出边距时,当组合时,您通常会自己看到语法意义上的任何错误

希望能帮助到你 (:

于 2019-07-02T23:34:42.723 回答