1、<>,find_all(name,attrs,recursive,string,**kwargs)
返回一個列表類型,存儲查找的結果
name:對標簽名稱的檢索字符串。
import requests from bs4 import BeautifulSoup import re #BeautifulSoup是一個類 r = requests.get('http://python123.io/ws/demo.html') print(r.text) demo = r.text #解析demo的解釋器 soup = BeautifulSoup(demo,'html.parser') soup.find_all('a') soup.find_all(['a','b']) for tag in soup.find_all(True): print(tag.name) for tag in soup.find_all(re.compile('b')): print(tag.name)
attrs:對標簽屬性值得檢索字符串,可標注屬性檢索。
#承接上面的demo soup.find_all('p','course') soup.find_all(id='link1') #我的demo中不包括link soup.find_all(id='link') soup.find_all(id=re.compile('link'))
recursive:是否對子孫全部檢索,默認True
#返回的是一個空列表,這意味着是從soup的根節點開始,a標簽應該在子孫的后續節點中 print(soup.find_all('a',recursive=False))
string:<>...</>中字符串區域的檢索字符串。
print(soup) #必須精確的輸入字符串信息 print(soup.find_all(string = 'Basic Python')) #如果希望輸入一個字符串,檢索出更多的信息 print(soup.find_all(string = re.compile('python')))
2、簡短表示
<tag>(..)等價於<tag>.find_all(..)
soup(..)等價於soup.find_all(..)
3、七個擴展方法

