python的网页解析器_Python网页解析器使用实例详解

python 网页解析器

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

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:页面的内容

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 跨域web访问权限,php:跨域 Web程序 - 贪吃蛇学院-专业IT技术平台

一个没那么难的历史难题,其实只要在被请求端,加一句: header(‘Access-Control-Allow-Origin: *‘);然后……然后没有了。//跨域访问的时候才会存在此字段$origin isset($_SERVER[‘HTTP_ORIGIN‘])? $_SERVER[‘HTTP_ORIGIN‘] : ‘‘;$al…

python送心小人_使用Python画出小人发射爱心的代码

我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def head(x,y,r): go_to(x,y) speed(1) circle(r) leg(x,y) def leg(x,y): right(90) forward(180) right(30) forward(10…

html php滚动代码,html中滚动条的代码是什么?如何设置html滚动条?

本篇文章主要介绍了关于html中的滚动条的代码,还有关于html 滚动条代码marquee标签属性的用法,具体的让我们一起来看这篇文章吧首先我们介绍html中的滚动条代码:今天我们介绍这个html滚动条标签是marquee.标签,它是成对出现的标签…

c 函数多次声明_C++核心准则C.132:不要没有理由就将函数声明为虚函数

岫玉C.132: Dont make a function virtual without reasonC.132:不要没有理由就将函数声明为虚函数Reason(原因)Redundant virtual increases run-time and object-code size. A virtual function can be overridden and is thus open to mistakes in a derived class. A virtu…

dell跳过开机硬件检测,关闭dell开机硬件自检 戴尔笔记本电脑每次开机自动硬件检查怎么取消?...

戴尔笔记本电脑每次开机自动硬件检查怎么取消?这界面是可以按ESC键取消的。 如果要开机时不再出现这个界面,可以到BIOS中找找看是否有相关选项可以关闭它。如何取消戴尔笔记本电脑开机自检?这是DELL的开机自检程序,可以关闭的&…

anaconda3卸载python_机器学习Python编程环境:VSCode+Anaconda

机器学习Python编程环境(Windows):VSCodeAnaconda安装顺序:Anaconda ->VSCode (不必下载Python)->机器学习常用Python包为什么选择VSCode ?Anaconda pycharm是大家都熟悉的Python编程环境,但是pycharm比较笨重&…

mysql innodb myisam 混合,MySQL MyIsam/InnoDB混合在一起的事务

在Oracle(或者, 应该说‘一般’吗?), 我们考虑Transaction(事务)这样. 你要一个决定来处理一连的操作的时候, 你用Transaction(事务)处理进程然后Commit或者Rollback.我觉得Transaction(事务)一般是这样子.现在我们不考虑Transaction levels和锁定.Transaction要明确的开始和结…

bat窗口大小设置_8-Flink中的窗口

戳原文:1-Flink入门2-本地环境搭建&构建第一个Flink应用3-DataSet API 4-DataSteam API5-集群部署6-分布式缓存7-重启策略8-Flink中的窗口9-Flink中的Time窗口窗口类型flink支持两种划分窗口的方式(time和count) 如果根据时间划分窗口&am…

php中pandans,Python地信专题 | 基于geopandas的空间数据分析-文件IO篇

本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1 简介在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习,而在日常空间数据分析工作中矢量文件的读入和写出,是至关重要的环节。作为基于geo…

ros创建工作空间_ROS入门学习之七Moveit机械臂控制

1.MoveIt!系统架构MoveIt是什么:一个易于使用的集成化开发平台由一系列移动操作的功能包组成:运动规划、操作控制、3D感知、运动学、控制与导航算法提供友好的GUI可应用于工业、商业、研发和其他领域ROS社区中使用度排名前三的功能包系统架构用户接口(Us…

matlab中quat2angle,matlab 学习记录

(1)元胞数组的创建a{matlab,20;ones(2,3),1:10} %创建方法一b[{matlab},{20};{ones(2,3)},{1:10}] %创建方法二c{10} …

常用于评价回归模型优劣的统计量包括( )。_第四十一讲 R-判断回归模型性能的指标...

当回归模型建立好以后,如何评价该回归模型是否与另一个回归模型有区别,如何比较两个回归模型的性能?这一讲中,我们将给大家介绍几个评价回归模型性能的统计指标。1. 模型性能指标在回归模型中,最常用的评估指标包括&am…

matlab mandrill,MATLAB】MATLAB的自带数据及可生成数据的函数

有时我们需要验证一些算法,但又不方便使用自己的数据,这时使用MATLAB自带的数据会带来很多便利,方便交流并且也不用担心未发表的工作会泄露。这里整理了一些MATLAB自带的数据……说明:【数据】表示直接可装载的(load),…

python 常用包_Python常用指引

Python常用指引Python常用指引的形式来源于Linux文档项目的常用指引章节,是一系列独立、指定主题并尝试完全覆盖该主题的文章集合。致力于提供比Python库参考帮助更详尽的文档。Python 3 是 Python 的未来,但 Python 2 仍处于活跃使用阶段,最…

java中equals函数所在的类,重写Java中的equals方法介绍

Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型,不论是对象数组,列表等都扩展了Object类.了解学习Object中方法的设计原理和实现方式有助于更好的学习理解java语言.下面,我们首先学…

读取当前linux进程内存_(笔记)Linux上的内存分配

作者: LemonNan原文: https://juejin.im/post/5ee3c34a518825430c3ad31d前言本篇是对Linux内存分配的一个学习笔记.程序内存结构下面是在 Linux/x86-32 中典型的一个进程内存结构文本段包含了进程运行的程序机器语言指令. 文本段具有只读属性, 以防止进程通过勘误指针意外修改自…

php改成IP连接数据库,thinkphp,pdo连接数据库,host自动被替换成了本机ip

class DBAccess extends PDO{ private $charset; // 数据库字符集public $cacheDir_cache_$98sdf29fw!d#s4fef/; public $prename; public $time; function __construct($dsn, $user, $password){ try{ parent::__construct($dsn, $user, $pa…

django开源电子文档管理系统_「开源推荐」BookStack v2.8 发布,简洁美观的在线文档管理系统

程序介绍BookStack,基于 Mindoc、使用Go语言的Beego框架开发的功能类似GitBook和看云的在线文档管理系统,拥有简洁美观的页面布局,实现了文档采集、导入、电子书生成以及版本控制等强大的文档功能,并推出了配套的开源微信小程序 B…

python tcp通信如何实现多人聊天,Python实现多用户全双工聊天(一对一),python多用户,多用户全双工聊天简陋...

Python实现多用户全双工聊天(一对一),python多用户,多用户全双工聊天简陋多用户全双工聊天简陋版简单实现了两个客户端之间的通信,客户端发送消息,先由服务器接收,然后服务器转发到另一客户端。该版本功能非常简陋,仅仅…

matlab 随机森林算法_随机森林算法

随机森林是一种灵活,易于使用的机器学习算法,即使没有超参数调整,也能在大多数情况下产生出色的结果。它也是最常用的算法之一,因为它简单,并且可以用于分类和回归任务。在这篇文章中,您将学习随机森林算法…