python爬虫分析_Python爬虫解析网页的4种方式
文章目录
爬虫的价值
正则表达式
requests-html
BeautifulSoup
lxml的XPath
爬虫的价值
常见的数据获取方式就三种:自有数据、购买数据、爬取数据。用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情,我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中,这个时候它的内容其实是一堆HTML,然后再对这些HTML内容进行解析,按照自己的想法提取出想要的数据,所以今天我们主要来讲四种在Python中解析网页HTML内容的方法,各有千秋,适合在不同的场合下使用
正则表达式正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等
正则的好处是编写麻烦,理解不容易,但是匹配效率很高,不过时至今日有太多现成的HTMl内容解析库之后,我个人不太建议再手动用正则来对内容进行匹配了,费时费力。
如果大家要学习可以参考:正则传送门
requests-html
这个库其实是我个人最喜欢的库,作则是编写requests库的网红程序员 Kenneth Reitz,他在requests的基础上加上了对html内容的解析,就变成了requests-html这个库了。
我喜欢用requests-html来解析内容的原因是因为作者依据帮我高度封装过了,连请求返回内容的编码格式转换也自动做了,完全可以让我的代码逻辑简单直接,更专注于解析工作本身。
安装与使用: pip install requests-html
BeautifulSoup
大名鼎鼎的 BeautifulSoup库,出来有些年头了,在Pyhton的HTML解析库里属于重量级的库,其实我评价它的重量是指比较臃肿,大而全,而且依赖Python,适用场景受到了局限性。
BeautifulSoup解析内容同样需要将请求和解析分开,从代码清晰程度来讲还将就,不过在做复杂的解析时代码略显繁琐,总体来讲可以用,看个人喜好吧。
安装与使用: pip install beautifulsoup4
lxml的XPath
lxml这个库同时 支持HTML和XML的解析,支持XPath解析方式,解析效率挺高,不过我们需要熟悉它的一些规则语法才能使用,例如下图这些规则。
安装与使用: pip install lxml
学习体验路径:AI特种兵训练营 - 网易云课堂study.163.com
python爬虫分析_Python爬虫解析网页的4种方式相关推荐
- python网页结构分析图_Python爬虫解析网页的4种方式 值得收藏
用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...
- python网页结构分析_Python爬虫解析网页的4种方式 值得收藏
用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...
- Python爬虫解析网页的4种方式 值得收藏
用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中, ...
- 网页爬虫 python-Python爬虫解析网页的4种方式
文章目录 爬虫的价值 正则表达式 requests-html BeautifulSoup lxml的XPath 爬虫的价值 常见的数据获取方式就三种:自有数据.购买数据.爬取数据.用Python写爬虫 ...
- python数字转换_python数字转换为字符串的两种方式
原博文 2017-08-05 23:24 − 主要包括两种形式进行转换: 第一种是str(),将值转换为用户便于阅读的形式: 另一种是repr(),将值转换为合法的python表达式. >> ...
- python挖矿代码_python检测挖矿特征的几种方式
1 #!/usr/bin/python3 2 #coding:utf-8 3 from tkinter import * 4 importpsutil,linecache,ctypes,wmi5 im ...
- python爬虫详细步骤-Python爬虫的两套解析方法和四种爬虫实现过程
对于大多数朋友而言,爬虫绝对是学习 python 的最好的起手和入门方式.因为爬虫思维模式固定,编程模式也相对简单,一般在细节处理上积累一些经验都可以成功入门.本文想针对某一网页对 python 基础 ...
- Python 打开网页的几种方式
Python打开网页的几种方式 方法1:直接调用系统命令 os #导入包 import os #执行包命令 os.system('"C:/Users/Public/AppData/Local ...
- java解析xml的几种方式
java解析xml的几种方式 博客分类: java基础备忘-好记性不然烂笔头 XMLJava应用服务器数据结构编程 第一种:DOM. DOM的全称是Document Object Model,也即文 ...
最新文章
- 数据结构(C语言版) 第二章 线性表 知识梳理+作业习题详解
- Java线程池详解学习:ThreadPoolExecutor
- 【错误记录】反射时调用方法及成员报错 ( 执行反射方法 | 设置反射的成员变量 | 设置方法/成员可见性 )
- 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-线性回归tf.keras概述-02
- wepy学习笔记之环境搭建
- linux的ctrl alt f6的作用,Linux(Centous6.4)操作系统中,快捷键Alt+Ctrl+F10是什么作用?...
- 利用动态规划(DP)解决 Coin Change 问题
- 查看eclipse 内存使用情况
- [iOS Animation]-CALayer 变换
- json.decoder.JSONDecodeError: Expecting ‘,‘ delimiter: line xx column xx (char xxx)
- 揭秘 OceanBase 勇夺 TPC 榜首的王者攻略!
- 微信电话本的未来在农村
- numpy 归一化_图卷积网络到底怎么做,这是一份极简的Numpy实现
- php基础-基本语法
- android 自定义listview 多列,android listview的多列模版实例代码
- Diango做blog.docx
- scrapy 搜索关键字_基于scrapy框架输入关键字爬取有关贴吧帖子
- 太乙超级计算机,从“启明”到“太乙”,南科大的超算发展之路
- VR虚拟现实培训解决方案
- 使用反射生成 JDK 动态代理
热门文章
- Leetcode--102. 二叉树的层次遍历
- git 生成ssh key_ubuntu git生成ssh key (公钥私钥)配置github或者码云
- 网站服务器睡眠后还能访问吗,远程服务器可以睡眠吗
- pc计算机中ram的编址单位,字母编址
- html设置焦点图片,HTML设置焦点
- ubuntu安装Redis+安装mysql(配置远程登录)+安装jdk+安转nginx+安转teamviewer+安装terminator+安装sublime
- gdb 调试命令的使用及总结
- 上古卷轴5json文件修改_【白夜谈】我做了一款失败的《社长卷轴》Mod
- [网络]------TCP UDP HTTP Socket 区别
- Java 内存 关系_JVM和Linux之间的详细内存关系