我真的希望能夠讓美麗的湯匹配任何標籤列表,像這樣。我知道attr接受正則表達式,但有什麼美麗的湯可以讓你這樣做嗎?美麗的湯使用正則表達式來查找標籤?
soup.findAll("(a|div)")
輸出:
<a> ASDFS
<div> asdfasdf
<a> asdfsdf
我的目標是創建一個刮刀可以抓住從站點表。有時候,標籤的命名不一致,我希望能夠輸入一個標籤列表來命名錶中的'數據'部分。
我真的希望能夠讓美麗的湯匹配任何標籤列表,像這樣。我知道attr接受正則表達式,但有什麼美麗的湯可以讓你這樣做嗎?美麗的湯使用正則表達式來查找標籤?
soup.findAll("(a|div)")
輸出:
<a> ASDFS
<div> asdfasdf
<a> asdfsdf
我的目標是創建一個刮刀可以抓住從站點表。有時候,標籤的命名不一致,我希望能夠輸入一個標籤列表來命名錶中的'數據'部分。
find_all()
是美麗的湯搜索API在最常用的方法。
您可以傳遞過濾器的變體。此外,通過一個list找到多個標籤:
>>> soup.find_all(['a', 'div'])
例:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<html><body><div>asdfasdf</div><p><a>foo</a></p></body></html>')
>>> soup.find_all(['a', 'div'])
[<div>asdfasdf</div>, <a>foo</a>]
或者你可以使用一個regular expression查找包含標籤a
或div
:
>>> import re
>>> soup.find_all(re.compile("(a|div)"))
是看文檔...
http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
import re
soup.findAll(re.compile("^a$|(div)"))
請注意,您也可以使用正則表達式來搜索在標籤的屬性中。例如:
import re
from bs4 import BeautifulSoup
soup.find_all('a', {'href': re.compile('crummy.com/')})
這個例子查找所有<a>
標籤鏈接到包含子'crummy.com'
網站。
(我知道這是一個非常古老的職位,但希望有人會發現這個額外的信息非常有用。)
可以使用的標籤列表:'soup.find_all([「一」,「格」] )' –
@ behzad.nouri你一定要把這個作爲答案。 – alecxe