火眼金睛
find()和find_all()的区别
用途不同
若网页中同种标签只有一个,则使用find(),返回一个标签,bs4.element.Tag
类型
若含有多个同种标签,想要全部获取,则应使用find_all(),返回一组标签,bs4.element.ResultSet
类型
返回结果类型不同
- find()返回的类型是:
bs4.element.Tag
,标签
- find_all()返回的类型是:
bs4.element.ResultSet
,列表
- 注意:只有
bs4.element.Tag
类型才可以继续find标签;bs4.element.ResultSet
返回的是列表,不能再find标签,可以尝试指定list[i]
得到Tag
1 2 3 4 5 6
| list0 = soup.find('div', attrs={'class': 'mid'}) list1 = find('a', href=True)
list0 = soup.find_all('div,' attrs={'class': 'mid'}) list1 = list0[1].find('a', href=True)
|
奇思妙想
a标签的秘密
获取a标签里的字符串
1 2
| for item in list1.find_all('a', href=True): print(item.string)
|
获取a标签里的href
1 2
| for item in list1.find_all('a', href=True): print(item['href'])
|
添加到字典中
1 2
| for item in list1.find_all('a', href=True): dict.update({str(item.string): str(item['href'])})
|