美丽的汤 - 几个属性搜索

时间:2017-12-21 16:50:55

标签: python parsing beautifulsoup attributes tags

使用Beautiful Soup,我想在HTML代码中找到所有标签'a',其属性“class”等于“button btn-1-small”或属性“class”等于“button beta” -callout btn-1-small“。我的代码是:

alltd = soup.find_all('a', {'class':'button btn-1-small'}, {'class':'button 
beta-callout btn-1-small'})

当我只有一个条件(“class”的一个值)时,我的代码工作正常,但是当我想要有两个条件时,它不再起作用了。

你知道怎么写条件“或”吗?为了使该类的值为另一个

非常感谢。

LCS

1 个答案:

答案 0 :(得分:1)

在您的情况下,Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim jsonString As String = "{""id"":1, ""name"":""tom"", ""items"":[ {""name"":""apple"", ""count"":1 }, {""name"":""milk"", ""count"":2 } ] }" Dim jsonObjects As JObject = JObject.Parse(jsonString) Console.WriteLine("id:" & jsonObjects.SelectTokens("id").ToString) Console.WriteLine("name:" & jsonObjects.SelectTokens("name").ToString) Console.WriteLine("items:" & jsonObjects.SelectTokens("items").ToString) 'Dim jsonArray As JArray = JArray.Parse(jsonObjects.SelectTokens("items").ToString) For Each item As JObject In JArray.Parse(jsonObjects.SelectTokens("items").ToString) Console.WriteLine("item:" & item.SelectTokens("name").ToString) Next End Sub End Class 多个类,这意味着只需执行'button btn-1-small'即可返回两个元素。

但是,要查找具有一个类或另一个类的元素,您需要传递一个列表。

因此,如果你有HTML:

soup.find_all('a', {'class': 'btn-1-small'})

您可以选择以下任一项:

<a href="#" class="foo">Test 1</a>
<a href="#" class="bar">Test 2</a>