网络爬虫-3(共?):网页解析器实现
网页解析器的目的 及 四种网页解析器的类型:
结构化解析——DOM(Document Object Model) 树。结构如下:
网页解析器 - Beautiful Soup - 基本语法 ↓↓↓↓↓ 【Beautiful Soup技术文档】
1.创建BeautifulSoup对象:↓↓↓↓
from bs4 import BeautifulSoup
#根据HTML网页字符串创建BeautifulSoup对象
soup = BeautifulSoup(
html_doc, #html文档字符串
'html.parser' #html解析器
from_encoding='utf8' #html文档的编码
)
2.搜索节点(find_all,find):↓↓↓↓
#方法:find_all(name,attrs,string)
#查找所有标签为a的节点
soup.find_all('a')
#查找所有标签为a,连接符合/view/123.htm形式的节点
soup.find_all('a',href='/view/123.htm')
soup.find_all('a',href=re.compile(r'/view/\d+\.htm')) #支持正则表达进行匹配内容
#查找所有标签为div,class为abc,文字为Python的节点。
soup.find_all('div',class_=‘abc’,string='Python') #class加下划线,是因为python的关键字有class,避免冲突
3.访问节点信息:↓↓↓↓
#得到节点:<a herf='1.html'>Python</a>
#获取查找到的节点的标签名称
node.name
#获取查找到的节点的href属性
node['herf']
#获取查找到的节点的链接文字
node.get_text()
实例测试: