美味的汤发现不同的章节,同时保留订单

2024-09-27 21:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用beutifulsoup来提取span部分中具有特定class值的文本,以及具有不同class值的div部分中的文本,同时保持顺序。在

下面的工作方式有一个例外,即它没有保留顺序[即列表的末尾有所有的div元素,而不是它们出现在页面中时]

extract = soup.findAll('span', {"class": "value1"})  
extract += soup.findAll('div', {"class": "value2"})

注意-这与问题-BeautifulSoup findAll() given multiple classes?相似,但稍有不同,因为我专门在spandiv代码中查找。在


Tags: 文本div元素列表顺序方式extract页面
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:49

没有什么可以阻止过滤掉错误的标记。扩展你提到的答案:

from bs4 import BeautifulSoup
soup = BeautifulSoup('<html><body><div class="class1"></div><i class="class1"></i><span class="class2"></span><div class="class1"></div></body></html>')
for e in soup.findAll(True, {"class":["class1", "class2"]}):
    if e.name in ("div", "span"):
        print e

过滤器也可以写成一个衬垫:

^{pr2}$

顺便说一句,即使这样也可以:

 soup.findAll(["div", "span"], {"class":["class1", "class2"]})

请参阅http://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-name-argument以获取有关什么可以作为查找全部的第一个参数的文档。在

相关问题 更多 >

    热门问题