首先,我们来看一个简单的网页https://www.pythonscraping.com/pages/page3.html,打开后:
右键“检查”(谷歌浏览器)查看元素:
用导航树的形式简单表示出来:
可知:
tr是table的子标签
tr、th、td、img、span标签都是table的后代标签
一般情况下,bbs0bj.body.h1选择的是body标签后代里的第一个h1标签,不会去找body外面的标签
类似的,bs0bj.div.findall("img")会找到第一个div标签,然后获取这个div后代里面所有的img标签
1. 处理子标签和后代标签
如果你想获得子标签,可以用.children标签:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://www.pythonscraping.com/pages/page3.html")
bsObj = BeautifulSoup(html)
for child in bsObj.find("table",{"id":"giftList"}).children:
print(child)
部分结果如下ÿ