Python网页解析器使用实例详解


Posted in Python onMay 30, 2020

python 网页解析器

1、常见的python网页解析工具有:re正则匹配、python自带的html.parser模块、第三方库BeautifulSoup(重点学习)以及lxm库。

Python网页解析器使用实例详解

2、常见网页解析器分类

(1)模糊匹配 :re正则表达式即为字符串式的模糊匹配模式;

(2)结构化解析: BeatufiulSoup、html.parser与lxml,他们都以DOM树结构为标准,进行标签结构信息的提取。

3.DOM树解释:即文档对象模型(Document Object Model),其树形标签结构,请见下图。

所谓结构化解析,就是网页解析器它会将下载的整个HTML文档当成一个Doucment对象,然后在利用其上下结构的标签形式,对这个对象进行上下级的标签进行遍历和信息提取操作。

# 引入相关的包,urllib与bs4,是获取和解析网页最常用的库
from urllib.request import urlopen
from bs4 import BeautifulSoup

# 打开链接
html=urlopen("https://www.datalearner.com/website_navi")

# 通过urlopen获得网页对象,将其放入BeautifulSoup中,bsObj存放的目标网页的html文档

bsObj=BeautifulSoup(html.read())
print(bsObj)

# soup = BeautifulSoup(open(url,'r',encoding = 'utf-8'))

import requests
from bs4 import BeautifulSoup

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36','referer':"www.mmjpg.com" }
all_url = 'http://www.mmjpg.com/'
  #'User-Agent':请求方式
  #'referer':从哪个链接跳转进来的

start_html = requests.get(all_url, headers=headers)
  #all_url:起始的地址,也就是访问的第一个页面
  #headers:请求头,告诉服务器是谁来了。
  #requests.get:一个方法能获取all_url的页面内容并且返回内容。

Soup = BeautifulSoup(start_html.text, 'lxml')
  #BeautifulSoup:解析页面
  #lxml:解析器
  #start_html.text:页面的内容

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python高效编程技巧
Jan 07 Python
bpython 功能强大的Python shell
Feb 16 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
Python初学者常见错误详解
Jul 02 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
python/golang实现循环链表的示例代码
Sep 14 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
Django后端按照日期查询的方法教程
Feb 28 Python
PyQt5实现画布小程序
May 30 #Python
Java ExcutorService优雅关闭方式解析
May 30 #Python
Python定时任务APScheduler原理及实例解析
May 30 #Python
Python生成器next方法和send方法区别详解
May 30 #Python
Python新手学习标准库模块命名
May 29 #Python
Django Path转换器自定义及正则代码实例
May 29 #Python
Python新手如何理解循环加载模块
May 29 #Python
You might like
PHP中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
PHP4中session登录页面的应用
2008/07/25 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
JavaScript之编码规范 推荐
2012/05/23 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
python实现小球弹跳效果
2019/05/10 Python
python实现图片插入文字
2019/11/26 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
python中Mako库实例用法
2020/12/31 Python
学生干部学习的自我评价
2014/02/18 职场文书
审美与表现自我评价
2015/03/09 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书