小编典典

如果类“包含”或正则表达式很漂亮?

python

如果我的班级名称经常不同,请说:

listing-col-line-3-11 dpt 41
listing-col-block-1-22 dpt 41
listing-col-line-4-13 CWK 12

通常我可以这样做:

for EachPart in soup.find_all("div", {"class" : "ClassNamesHere"}):
            print EachPart.get_text()

这里有太多的类名称无法使用,因此一类都已淘汰。

我知道Python没有我通常会使用的“ .contains”,但确实有一个“ in”。尽管我还没有找到一种方法来整合它。

我希望有一种使用正则表达式的方法。尽管我的Python语法确实让我失望,但我一直在尝试以下方面的变体:

regex = re.compile('.*listing-col-.*')
    for EachPart in soup.find_all(regex):

但这似乎并不能解决问题。


阅读 208

收藏
2020-12-20

共1个答案

小编典典

BeautifulSoup支持CSS选择器,您可以根据特定属性的内容选择元素。这包括*=用于包含的选择器。

以下将返回div具有class包含文本“ listing-col-”的属性的所有元素:

for EachPart in soup.select('div[class*="listing-col-"]'):
    print EachPart.get_text()
2020-12-20