我正在尝试使用BeautifulSoup Python库解析HTML文档,但是结构由于<br>
标签而失真。让我举一个例子。
输入HTML:
<div>
some text <br>
<span> some more text </span> <br>
<span> and more text </span>
</div>
BeautifulSoup解释的HTML:
<div>
some text
<br>
<span> some more text </span>
<br>
<span> and more text </span>
</br>
</br>
</div>
在源中,跨度可以被视为同级。解析后(使用默认的解析器),由于br标签成为结构的一部分,因此跨度突然不再是同级的。
我能想到的解决方案是<br>
在将html倒入Beautifulsoup之前完全剥离标签,但这似乎不太优雅,因为这需要我更改输入。有什么更好的方法来解决这个问题?
最好的选择是extract()
换行。它比您想象的要容易:)。
>>> from bs4 import BeautifulSoup as BS
>>> html = """<div>
... some text <br>
... <span> some more text </span> <br>
... <span> and more text </span>
... </div>"""
>>> soup = BS(html)
>>> for linebreak in soup.find_all('br'):
... linebreak.extract()
...
<br/>
<br/>
>>> print soup.prettify()
<html>
<body>
<div>
some text
<span>
some more text
</span>
<span>
and more text
</span>
</div>
</body>
</html>
结构体中的字段除了有名字和类型外,还可以有一个可选的标签(tag):它是一个附属于字段的字符串,可以是文档或其他的重要标记。标签的内容不可以在一般的编程中使用,只有包 reflect 能获取它。我们将在下一章(第 11.10 节)中深入的探讨 reflect包,它可以在运行时自省类型、属性和方法,比如:在一个变量上调用 reflect.TypeOf() 可以获取变量的正确类型,如果变量是一个结构体
问题内容: 我可以使用BS轻松遍历通用标签,但是我不知道如何查找特定标签。例如,我怎么能找到所有的出现?BS可以吗? 问题答案: 以下应该工作 有两种搜索标签的方法。 http://www.crummy.com/software/BeautifulSoup/documentation.html 有关更多文本的理解和使用 http://lxml.de/elementsoup.html
问题内容: 我正在抓取页面,并从该页面上的表中获取所有元素,如下所示: 输出: 现在,我试图获取标签的样式,但是我不知道如何。例如,如果我这样做: 它显然只是打印东西。我想我大概可以做这样的事情,比如,但一切到目前为止,我已经尝试并没有带来我想要的东西。 问题答案: 只需使用以下属性即可访问: 如果您只想要具有样式属性an的tr标记来获取全部标记: 或使用CSS选择器: 使用您的实际网址:
本文向大家介绍你知道p标签和br标签两者的区别是什么吗?相关面试题,主要包含被问及你知道p标签和br标签两者的区别是什么吗?时的应答技巧和注意事项,需要的朋友参考一下 block 块级元素,br 内联元素; block 能被 css 修改,br 不能; block 非单标签元素,br 是; block 换行靠的是块级元素特性,br 换行靠的可能是类似 \n 的渲染规则
我正试图从Zalora那里获得3件事:1。项目品牌2。项目名称3。项目价格(旧) 以下是我最初的尝试: 输出: 然后我做进一步的调查: 输出: 这是令我困惑的奇怪的事情,在ul标签中应该有很多标签(我需要的3样东西都在那些隐藏的标签中),为什么它们不显示? 事实上,我试图在ul标签中使用BeautifulSoup刮取的所有内容都没有输出。
问题内容: 我正在使用beautifulSoup从网站提取数据。每当您重新加载页面时,该网站上的文本都会更改,因此基本上,我希望能够将重点放在类名上作为静态变量,因为文本是动态的。 它打印出 当页面重新加载,我仍然有重点的领域,但我不知道如何只打印文本(在这种情况下是:4) 一旦解决了这个问题,我还有另一个问题:如果该类包含多个标签,是否有办法获取更多静态数据,以确保它只打印我在搜索的文本,而不是