python - 根据 BeautifulSoup 中的文字字符串检查 Class 属性?

标签 python html

我正在抓取一些结构如下的 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 控制台,我会得到

[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/

相关文章:

python - 如何让 PyLint 找到命名空间包?

python - 在 python 循环中从交替文件打印行

python - 导入错误 : No module named 'setuptools.build_meta'

javascript - 对于连接速度较慢的用户,我想用图像标签替换视频标签

html - 检查元素中样式左侧的绿色垂直线是什么意思?

html - margin-left 在 div 的右侧添加空间

python - 如何创建包含两个不同查询集之和的表

python - 在 Python SQLAlchemy 中创建基于字符串的序列

javascript - 使用当前页面 URL 自动填充文本字段值

javascript - 如何识别jquery中保存的浏览器用户名和密码