如何在BeautifulSoup中使用re.compile与类
我正在尝试抓取一个页面,这个页面上有不同的CSS类,具体如下:
class="mod result idx0 people"
class="mod result idx1 people"
class="mod result idx2 people"
class="mod result idx3 people"
class="mod result idx4 people"
我使用的是 bs4
和 html5lib
,搭配 Python2.7
。
现在,当我对上面第一个元素进行操作时,结果是好的。
soup.find(class_="mod result idx0 people")
但是,我想对所有的类都这样做。
所以我尝试了所有的类,但仍然得到一个空列表 []
。我哪里做错了呢?
soup.find_all(class_="mod result")
soup.find_all(class_=re.compile("mod result"))
soup.find_all("li",{"class":re.compile("mod result")})
soup.find_all("li",attrs={"class":re.compile("mod result")})
soup.find_all({"class":re.compile("mod result")})
这些都不行 :-(
1 个回答
1
根据Beautiful Soup的文档 - 按CSS类搜索,如果你想查找同时符合两个或多个CSS类的标签,你应该使用CSS选择器。
soup.select('.mod.result')