一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
Web信息提取与Python实现
Web信息提取任务及要求
- 新闻报道
- 列表
- 评论
提取思路
Web页面具有一定结构,html标签构成树形结构
DOM树解析可以实现基于树中特征来定位信息
DOM树
- 层次树,标签是树中非叶子节点,信息内容放在叶子节点
常用属性
常用方法
提取方法
基于字符匹配的Web提取方法
把HTML文件内容看作字符串,根据边界特征确定正文内容的起始位置,利用字符串函数进行截取
基于HTML结构的Web信息提取方法
- 通过HTML解析器将Web文档解析成DOM树
- 确定要提取的正文在DOM树的哪个节点下
- 通过各种方法定位到特征节点,提取内容
基于统计的Web信息提取方法
- 通过HTML解析器将Web文档解析成DOM树
- 基于某种统计信息来获取正文内容,这里的统计信息要求有区分度
- 阈值的设定影响准确性,结果可能有噪声
HTML结构的内容提取方法
- 不同开源库的比较
- html.parser lxml html5lib Beautifulsoup PyQUuery
html.parser
定义
- 类的定义
class html.parser.HTMLParser(*,convert_charrefs = True)
- 方法的定义
使用方法
- 构造解析类,该类继承HTMLParser,重写headle_starttag、handle_data和handle_endtag方法。在handle_starttag中确定提取信息的标签在handle_data中提取数据
lxml
定义
使用方法
- 节点定位
- Xpath
- 遍历函数
- CSS选择器
- 利用etree提供的fromstring读取HTML内容,获取Element类型的节点或ElementTree对象
- 利用解析到的Element或ElementTree的Xpath、csselect、find、findall等方法获取信息节点
- 节点中提取信息
html5lib
定义
使用方法
- 通过html5lib执行parse方法,返回解析好的etree,然后用etree的xpath方法指定提取的内容的路径,获取信息
- 处理页面较多可以使用html5lib.HTMLParaser构造解析器,然后执行parse方法处理不同页面
- 可以利用etree匹配能力,运用findall等方法从html文档中找出所有符合条件的标签
BeautifulSoup
使用方法
BeatufulSoup(html,parser)指定解析器- html可以是html字符串
- parser可以是html.parser、lxml或html5lib
- 指定解析器
- 使用select或find、findAll等方法定位、获取相应的标签内容
PyQuery
使用方法
- 三种初始化方法
- 传入字符串
- 传入URL
- 传入文件
- 主要操作
- html()或text()获取html或文本的内容
- (’selector’)通过选择器获取目标内容
- find()查找元素
- filter()根据class、id筛选指定元素
- attr()获取、修改属性值
- children()获取子元素
- parents()获取父元素
- next()获取下一个元素
- nextAll()获取后面全部元素
Prev
动态页面采集与Python实现
Next
主题爬虫页面采集技术与Python实现
Loading...