find_all()⽅法以列表形式返回所有的搜尋到的標籤資料。
find()⽅法返回搜尋到的第⼀條資料
find_all(self, name=none, attrs={}, recursive=true, text=none,
limit=none, **kwargs)
name : tag 名稱
attrs :標籤的屬性
recursive : 是否遞迴
text : 文字內容
limit : 限制返回的條數
**kwargs :不定長引數 以關鍵字來傳參
from bs4 import beautifulsoup
html_doc =
"""the dormouse's story
once upon a time there were three little sisters; and their names were
elsie,
lacie and
tillie;
and they lived at the bottom of a well.
..."""
soup=beautifulsoup(html_doc,
'lxml'
)a_tags=soup.find_all(
'a')
print
(a_tags)
p_tags=soup.find_all(
'p',
'title'
)print
(p_tags)
print
(soup.find_all(id=
'link1'))
print
(soup.find_all(
'a',limit=3)
)print
(soup.a)
print
(soup.find(
'a')
)print
(soup.find_all(
'a',recursive=
true))
#print(soup.find_all('a',limit=1))[0]
find_parents() 搜尋所有⽗親
find_parrent() 搜尋單個⽗親
find_next_siblings()搜尋所有兄弟
find_next_sibling()搜尋單個兄弟
title_tag=soup.title
print
(title_tag.find_parent(
'head'))
#print
(title_tag.find_parents(
'head'))
s=soup.find(text=
'elsie'
)print
(s.find_previous(
'p')
)print
(s.find_parents(
'p')
)a_tag=soup.a
print
(a_tag.find_next_sibling(
'a')
)print
(a_tag.find_next_siblings(
'a')
)
find_previous_siblings() 往上搜尋所有兄弟
find_previous_sibling() 往上搜尋單個兄弟
find_all_next() 往下搜尋所有元素
find_next()往下查詢單個元素
a_tag=soup.find(id=
'link3'
)# print(a_tag)
# print(a_tag.find_previous_sibling())
# print(a_tag.find_previous_siblings())
p_tag=soup.p
print
(p_tag.find_all_next())
print
(p_tag.find_next(
'a')
)
# 爬取全國所有的城市名稱以及對應的氣溫
import requests
from bs4 import beautifulsoup
defparse_page
(url)
: response=requests.get(url)
text=response.content.decode(
'utf-8'
) soup=beautifulsoup(text,
'html5lib'
) conmidtab=soup.find(
'div'
,class_=
'conmidtab'
)# print('conmidtab')
tables=conmidtab.find_all(
'table'
)for table in tables:
trs=table.find_all(
'tr')[
2:]for index,tr in
enumerate
(trs)
: tds=tr.find_all(
'td'
) city_td=tds[0]
if index==0:
city_td=tds[1]
city=
list
(city_td.stripped_strings)[0
] temp_td=tds[-2
] temp=
list
(temp_td.stripped_strings)[0
]print
('城市:'
,city,
'溫度:'
,temp)
defmain()
:#url = '' # 華東
# url = '' # 東北
#url = '' # 港澳台
urls =
['',''
,'']for url in urls:
parse_page(url)
if __name__ ==
'__main__'
: main(
)
FindAll和Linq where的區別
我們在集合查詢時經常用到findall和where篩選集合。二者實現的功能都是一樣的.1.findall是list型別中的乙個方法,而不像where是乙個linq表示式的擴充套件方法。我們知道linq表示式可以基於所有繼承ienumerable的集合上使用,而findall只能運用於list的實 例...
正規表示式的findall函式和match函式比較
findall函式返回的是正規表示式在字串中所有匹配結果的列表。我們先來看一組例子,來了解這個方法在返回匹配結果的細節。import re s abc defg hi jkl mnopq rst xyz regex str 1 w s w res 1 re.findall regex str 1,s...
查詢命令find 和grep
一般來說,find 是指查詢檔案,以檔名為依據,當然也可以指目錄,而grep是查詢字串,以查詢內容為主。當然二者還可以混合使用。find 格式 find path options tests actions 幾個簡單例子 find name test.txt print find type d te...