爬虫学习
对象的种类
Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象: Tag , NavigableString , BeautifulSoup , Comment 。
print(soup.prettify())#自动更正格式,使输出更美观
Tag:name,attrs
contents
属性只返回直接子节点
descendants
属性可以获取当前节点所有的子孙节点。
for i,child in enumerate(soup.ul.descendants):
print(i,child)
父节点:** 使用`parent` 属性可以获取当前节点的父节点。
parents
属性可以获取当前节点的祖先节点
for i,parent in enumerate(soup.ul.parents):
print(i,parent)
find_all( name , attrs , recursive , text , **kwargs )
find( name , attrs , recursive , text , **kwargs )
1.find_all()与find区别
find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果.find_all() 方法没有找到目标是返回空列表, find() 方法找不到目标时,返回 None .
find_parents()和find_parent():前者返回所有祖先节点,后者返回直接父节点。
find_next_siblings()和find_next_sibling():前者返回后面所有的兄弟节点,后者返回后面第一个兄弟节点。
find_previous_siblings和find_previous_siblling():前者返回前面所有的兄弟节点,后者返回前面第一个兄弟节点。
find_all_next()和find_next():前者返回节点后所有符合条件的节点,后者返回节点后第一个符合条件的节点。
find_all_previous()和find_previous():前者返回节点前所有符合条件的节点,后者返回节点前第一个符合条件的节点。
2.获取文本内容
可以调用string和get_next()方法获取文本内容。
上一篇: 谈谈用例模型的那些事儿 之 用例图
下一篇: 谈谈软件开发的那些事儿 之 解决之道