1.7认识网页解析工具

课前说明:

       网页解析工具有很多种,例如:re、xpath、jsonpath、bs4等等,本章节简单介绍一下re和xpath的用法,其它解析工具自行学习O(∩_∩)O哈!

 本章节需要掌握的知识点:

re正则的使用

xpath的使用

re 详解:

import re

#
string = '''Hi girl!
    Are you free tonight?
    Let's go to play!
'''

# 1) 元字符
# 普通字符  字母 数字 下划线等 ascci 码表中可见的字符
# pat = r'o'
# ret = re.findall(pattern=pat, string=string)

# 非打印字符
# pat = r'\n'
# ret = re.findall(pattern=pat, string=string)

# 2) 通配符
# 用某些特殊字符串,来表示某一类字符
'''
\w  任意的字母、数字、下划线
\W  任意的非字母、数字、下划线
\d  数字
\D
\s  空白
\S

[abc]  匹配a、b或c
[a-e]  匹配 a-e 之间的任意一个字符
[^abc] 匹配除了abc之外的任意字符
'''
pat = r'[^abc]'
ret = re.findall(pattern=pat, string=string)

# 3)特殊字符
'''
.   任意字符

$   以某某结束
+   重复一次到多次
*   重复0多多次
?   至多重复1次
{m} 重复m次
'''
# pat = r'^H.+'
# ret = re.findall(pattern=pat, string=string)

# 4) 模式修正print(ret)
# 如果要进行模式修正,首先要用compile 将正则字符编译成正则对象
# pat = re.compile(r'^H.+!$', re.S)
# ret = pat.findall(string)
'''
re.I    忽略大小写
re.S    把多行字符串视为一行
re.M    把多行字符串拆成多个单行来匹配
'''

# # 贪婪于懒惰
# string = 'dfasdfa l apfdsafadsfpafpaasfdapaasfda'
# # pat = re.compile(r'.*pa')  # 贪婪模式:按照规则一直寻找到最后一个符合规则字符为止
# pat = re.compile(r'.*?pa')  # 懒惰模式:按照规则寻找到第一个符合就停止
# ret = pat.findall(string)
print(ret)

第一张图片是 re 比较常用的一些知识点:

xpath详解: 

from lxml import etree

# lxml 这个框架用于对xml 文件进行格式化操作(说明:HTML是一种特殊的xml文件)
# xpath 是一种在XML中,根据文档的结构来提取目标元素和属性的语法,它的基础库就是lxml

# etree 的作用就是把HTML 字符串用一个树型结构来表现出来,也成为节点树
# 1、用 etree 把HTML 加载进来,并且创建出一颗节点树
# 加载本地文件
html_tree = etree.parse('./test.html')

# 2、获取节点  获取test文件中第一个li
# ret = html_tree.xpath('/html/body/ol/li[1]/text()')
# print(ret)
# xpath方法可以根据xpath 语法把符合语法的所有的节点对象放在列表中返回
# ret = html_tree.xpath('/html/body/div/div[1]/a')

# 3、获取属性和内容
# ret = html_tree.xpath('/html/body/ol/li[2]/text()')  # 获取节点中的文本内容
# ret = html_tree.xpath('/html/body/div/div[2]/a/@href')  # 获取节点的某个属性

# 4、定位
# 1)层级定位
# 查找页面上所有的li
# ret = html_tree.xpath('//li/text()')  # 在xpath语法中,/ 代表两层节点中间只相隔一层, // 代表相隔若干层
# ret = html_tree.xpath('//ol//@class')
# 2)属性定位
# 查找页面上所有带id属性的li
# ret = html_tree.xpath('//li[@id]/text()')
# 查找页面上所有的class值为dudu的li
# ret = html_tree.xpath('//li[@class="dudu"]/text()')
# 注意:xpath 中一定要把要查找的属性值写全
# ret = html_tree.xpath('//li[@class="hehe jj]/text()"')
# 5、模糊匹配
# 查找所有的class值中包含 he 的li
# ret = html_tree.xpath('//li[contains(@class, "he")]/text()')
# 查找所有的class值以 h 开头的li
# ret = html_tree.xpath('//li[starts-with(@class, "h")]/text()')

# 6、逻辑匹配
# 与:查找所有的包含有id属性并且含有class 的那些li
# ret = html_tree.xpath('//li[@id="hh" and @class]')
# 或:查找id 属性为hh,class 属性为name的 li
# ret = html_tree.xpath('//li[@id="hh" or @class="name"]')
# print(ret)

第二张图是 xpath 常用的知识点,结合这些知识点基本能解析所有的页面 

温馨提示:多动手动脑才能记得住哦n(*≧▽≦*)n! 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个网页制作高手、美工和程序员,我们都有过这样的经历:当看到一个漂亮的Flash的 时候或看到一个精巧的JavaScript功能的时候,使用IE的查看源代码的功能,仔细分析相关 的HTML代码,从临时目录中或网站上取得想要的SWF文件和JS文件。吸取别人优点的做法往 往能够事半功倍,互联网中这样的宝藏真是不计其数!WebPage Spy就是一个帮助我们挖掘这 些宝藏的工具,他能够将您想要从网页中得到的一切分门别类的呈现在您眼前! WebPage Spy有一个HTML代码分析器,它能够在网页在浏览器显示一个网页的时候自动从其中 分析出该网页所含的HTML文件、Flash文件、JavaScript代码、Style Sheet代码、图像文件、 Applet文件、链接等等。所有这些显示在树形列表中,点击鼠标就可以查看图像和浏览代码, 可以将自己喜欢的文件保存到自己指定的目录中。 WebPage Spy还提供了许多附件来增强IE的功能,这些功能添加在同内容相关的右键菜单中, 您可以根据自己的需要选用:您可以使用“搜索包含此内容的网站“和“在新闻组中搜索此内容” 功能在互联网上搜索在网页中选中的文字;您可以使用“查看所选部分的代码”来查看网页的 部分HTML代码,方便程序调试和代码分析;“放大“、“缩小”和“高亮度显示文字”功能方便您在 演示的时候更好的标示重点,等等。 WebPage Spy还将常用的IE配置功能通过菜单的方式提供,您只要点击一下就可以达到目的, 再也不用总是进入“工具/Internet选项”,在选项卡中来回翻找。提供的快捷功能有:删除临 时文件,删除cookies,清除历史纪录。提供的选项开关有:显示图片,禁止脚本调试,启用 自动完成功能,允许脚本运行,允许Java Applet运行,允许ActiveX和插件运行。 赶快拥有WebPage Spy,发掘网页中无尽的宝藏! 产品特性 * 在您浏览网页的同时自动运行; * 同IE完美集成,可以象收藏夹那样显示和关闭; * 支持含Frame和IFrame的网页; * 将Flash, 图像, JavaScript, Style Sheet, 链接分类显示在树中; * 能够生成网页的所含外部元素的报告,并估算整个网页完全下载所需的时间; * 双击鼠标查看JavaScript, Style Sheet和网页的源代码; * 保存任何喜欢的内容; * 提供很多增强IE功能的附件; * 自定义增加的附件的数量; * 提供改变IE设置的快捷操作; * 图像列表可以将页面背景图,表格背景图等都列举出来; * JavaScript和Style Sheet列表包含链接的外部文件,也包含网页中内含的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值