從html中查找元素,之前一般都用find(),查找符合條件的第一個,如下
f = open(file, 'r') # 讀取文件內容
content = f.read()
soup= BeautifulSoup(content, 'html.parser', from_encoding='utf-8')
f.close()
tr = soup.find('tr', class_='b') # class是關鍵字,加"_ "
這樣就能查到,符合標簽為tr,class屬性值為b的條件的第一個元素
但是有次遇到一個問題,發現find()對於屬性的值不是精確匹配的,是模糊匹配。
如下圖:如果用soup.find('tr',class_='bar')實際定位到的是上面的,說明模糊匹配。find_all()也是模糊匹配

所以改用select()方法,
soup.select('td[class="bar"]')
#select()方法使用css定位元素,根據td標簽和class屬性值 精確定位,但是會查詢出來所有符合條件的元素,返回一個列表
如上圖,如果希望定位到需要“查找的”元素文本值
soup.select('td[class="bar"]')[0].text
