python - 如果对象也有其他类,Beautiful Soup 也找不到 CSS 类

标签 python screen-scraping beautifulsoup

如果一个页面有 <div class="class1"><p class="class1"> ,然后 soup.findAll(True, 'class1')会找到他们俩。

如果有 <p class="class1 class2"> ,但是,它不会被发现。如何找到具有某个类的所有对象,而不管它们是否也有其他类?

最佳答案

不幸的是,BeautifulSoup 将其视为一个包含空格的类'class1 class2',而不是两个类['class1','class2']。一种解决方法是使用正则表达式而不是字符串来搜索类。

这行得通:

soup.findAll(True, {'class': re.compile(r'\bclass1\b')})

关于python - 如果对象也有其他类,Beautiful Soup 也找不到 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1242755/

相关文章:

python - 用于 SVG 路径计算的库

Python:列表理解和函数式编程

python - "ImportError: no suitable image found"使用 BeautifulSoup 和 Python3.8

python - BeautifulSoup 最低共同祖先

python - 如何使用 BeautifulSoup 从网页中获取整个正文文本?

python - 使用Python使用广度优先搜索算法的两个节点之间的距离

python - django.db.utils.ProgrammingError : (1146, "Table ' med_portal.Custparent'不存在”)

ruby - 解释这个原始文本 - 一种策略?

javascript - 使用 javascript 从亚马逊 URL 中抓取 ASIN

html - 抓取网站并将其转换为 HTML?