正则是通过模糊匹配来进行爬取数据,而2,3,4则是结构化解析进行爬取数据。
DOM(Document Object Model)树,以树的形式进行上下级的遍历和访问 会将整个网页当作是一个Document对象
Python第三方库,用于HTML或XML中提取数据 官网 https://www.crummy.com/software/BeautifulSoup/
官网下载Beautiful Soup最新版本4.6.0 之后使用 import bs4 print(bs4) 来检测是否已经成功安装了beautifulSoup4
①根据Html网页可以创建一个BeautifulSoup对象,创建这个对象的同时,就把这个文档加载为一个DOM树 ②然后根据DOM树,就可以进行各种节点的搜索 这里面有两个方法 find_all方法:会搜索到所有满足条件的节点 find方法:会搜索到第一个满足条件的节点 其中find方法和find_all方法的参数是完全一致的。节点搜索,也可根据节点的属性,名称和文字进行搜索。 ③得到节点后,我们就可以进行节点的访问。如节点的名称,节点的属性,节点的文字。
举个栗子 Python 节点名称:a 节点属性:href=”123.html” class=”artical_link” 节点内容:Python from bs4 import BeautifulSoup
soup = BeautifulSoup( ‘html_cont’,#HTML文档字符串 ‘html.parser’, #HTML解析器 from_encoding=’utf-8’ #HTML文档编码 )
soup.find_all(‘a’)
soup.find_all(‘a’,href=’/view/123.htm’) soup.find_all(‘a’,href=re.compile(r’/view/123.htm’))
soup.find_all(‘div’,class_=’abc’,string=’Python’)
node.name
node[‘href’]
node.get_text()