如:
- <div class="cool">
- <h1 class="abc">design</h1>
- </div>
搜索此行,可以这样写
- abcSoup = soup.find(name="h1", attrs={"class":"abc"})
但如果情况变成
- <div class="cool">
- <h1 class="abc">design</h1>
- <h1 class="abc test1">design photo</h1>
- <h1 class="abc test2">design product</h1>
- </div>
此时,想一次性找到三个 h1,就需要用到正则了。
- abcSouplist = soup.find_all(name="h1", attrs={"class":re.compile(r"abc(\s\w+)?")})
便可以找到:
- <h1 class="abc">design</h1>
- <h1 class="abc test1">design photo</h1>
- <h1 class="abc test2">design product</h1>
还有一种情况,就是判断一种属性是否存在,从而找到该文件。可以通过 True 和 Flase 进行筛选。
比如:
- <div class="cool">
- <h1 class="abc" id="test">design</h1>
- <h1 class="abc test1">design photo</h1>
- <h1 class="abc test2">design product</h1>
- </div>
想选择所有不存在 id 属性的文件,可以写如下表达式筛选。
- Soup.find_all("h1",attrs={"id":Flase})
就可以筛选出下面两行 h1 啦
- <h1 class="abc test1">design photo</h1>
- <h1 class="abc test2">design product</h1>
来源: http://www.bubuko.com/infodetail-2453226.html