我正在抓取一些结构如下的 HTML:
<span class="ThreadPrime"><a href="url1">Post title 1</a></span>
<span class="ThreadInfo"><a href="url2">Reply title 2</a></span>
给定文档中所有标签的循环,如果标签的父级具有特定的 CSS 类(在本例中为 ThreadPrime),我想有条件地分支。
这是我尝试使用的检查(thisATag 是 find_all 循环中的当前迭代器)。
if thisATag.parent.get("class")=="ThreadPrime"
但是,这个条件似乎永远不会被评估为真。如果我将 thisATag.parent.get("class") 打印到 python 控制台,我会得到 p>
[u'ThreadPrime']
[u'ThreadInfo']
我不确定在我的条件中要与什么进行比较。我尝试了“[u'ThreadPrime']”和“ThreadPrime”,但它们似乎都不匹配。
最佳答案
您正在将 unicode 字符串与解码后的字符串进行比较。请参阅this关于 Unicode 类型部分。试试这个:
my_string = (thisATag.parent.get("class")).decode('utf-8')
if my_string=="ThreadPrime"
关于python - 根据 BeautifulSoup 中的文字字符串检查 Class 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019875/