Web信息提取与Python实现

Web信息提取任务及要求

  • 新闻报道
  • 列表
  • 评论

提取思路

Web页面具有一定结构,html标签构成树形结构
DOM树解析可以实现基于树中特征来定位信息

DOM树

  • 层次树,标签是树中非叶子节点,信息内容放在叶子节点

常用属性

常用方法

提取方法

基于字符匹配的Web提取方法

把HTML文件内容看作字符串,根据边界特征确定正文内容的起始位置,利用字符串函数进行截取

基于HTML结构的Web信息提取方法

  1. 通过HTML解析器将Web文档解析成DOM树
  1. 确定要提取的正文在DOM树的哪个节点下
  1. 通过各种方法定位到特征节点,提取内容

基于统计的Web信息提取方法

  1. 通过HTML解析器将Web文档解析成DOM树
  1. 基于某种统计信息来获取正文内容,这里的统计信息要求有区分度
  1. 阈值的设定影响准确性,结果可能有噪声

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选择器
  1. 利用etree提供的fromstring读取HTML内容,获取Element类型的节点或ElementTree对象
  1. 利用解析到的Element或ElementTree的Xpath、csselect、find、findall等方法获取信息节点
  1. 节点中提取信息

html5lib

定义

使用方法

  • 通过html5lib执行parse方法,返回解析好的etree,然后用etree的xpath方法指定提取的内容的路径,获取信息
  • 处理页面较多可以使用html5lib.HTMLParaser构造解析器,然后执行parse方法处理不同页面
  • 可以利用etree匹配能力,运用findall等方法从html文档中找出所有符合条件的标签

BeautifulSoup

使用方法

  • BeatufulSoup(html,parser) 指定解析器
    • html可以是html字符串
    • parser可以是html.parser、lxml或html5lib
  1. 指定解析器
  1. 使用select或find、findAll等方法定位、获取相应的标签内容

PyQuery

使用方法

  1. 三种初始化方法
      • 传入字符串
      • 传入URL
      • 传入文件
  1. 主要操作
      • html()或text()获取html或文本的内容
      • (’selector’)通过选择器获取目标内容
      • find()查找元素
      • filter()根据class、id筛选指定元素
      • attr()获取、修改属性值
      • children()获取子元素
      • parents()获取父元素
      • next()获取下一个元素
      • nextAll()获取后面全部元素
Prev
动态页面采集与Python实现
Next
主题爬虫页面采集技术与Python实现
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++