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

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

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

相关文章

学习C/C++的简单方法

如何学习C呢。C和C是很多专业的必修课,尤其对计算机专业来说,更是重中之重。C语言是早期发展的高级语言,具备执行速度快,语法优美等特点。是底层高效率系统的首选开发语言。今天就和大家分享一下怎么学好C/C语言吧 _ 怎么学好C、…

python3环境运行python2代码_使用Anaconda实现Python2和Python3共存及相互转换

前言 初学Python时,总是被python的两个不太兼容的版本搞得头昏脑胀。按目前的发展趋势,python未来的主流版为python3。但是我们经常会遇到一些很有意思代码使用的是python2版本。于是我们需要同时拥有python2和python3的运行环境。这里介绍一个强大的软件…

python中用于标识字符串的定界符_001.python-基础-Template的字符串格式化

Template是Python string模板中定义的一种字符串类型。用途:用于字符串替换操作。默认的定界符:$。# -*- coding: utf-8 -*-from string import Template# # 在python中Template可以将字符串的格式固定下来,重复利用。# Template属于string中…

零基础自学编程应读书籍

如果你是一个程序员,除了编码之外,你还需要大量的阅读。书籍是知识和智慧的重要来源。但不幸的是,现在很多人已经不愿意看书了。程序员更是罕见地会去读书,最常见的是依靠互联网搜索结果来找寻答案。  技术向前的步伐比人类历史上…

chromecast投屏_利用谷歌Chromecast,3个简单的步骤教你将手机投屏到电视上

无论是在线观看电影、视频通话、展示度假照片还是在电视上玩游戏,把你的安卓(Android)手机的屏幕内容投屏到电视机上都很简单。放过你的家人和朋友们吧,与其让他们挤在你的Android手机或平板电脑的小屏幕上前浏览照片或观看最新的疫情播报视频&#xff0…

python在线解题_20. 有效的括号-----leetcode刷题(python解题)

[TOC] 题目 给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符…

零基础学c语言如何开始

如果是想通过计算机等级考试 就买一本全国计算机等级考试二级试题认真做就可以了 当然也要加强上机实践。 怎样才能学好C语言 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述…

python数据预处理代码_Python中数据预处理(代码)

本篇文章给大家带来的内容是关于Python中数据预处理(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、导入标准库import numpy as np import matplotlib.pyplot as plt import pandas as pd 2、…

零基础想学好C语言编程,首先要掌握的是正确的学习思路!

如果新手要学习编程,一些前辈都会建议从Python、PHP、Java开始学。 不过,有些程序员是直接从C语言强势入门编程的。 那么,如何学习C语言呢?下面提供4种入门C语言的方法: 0、刷题 绝大多数的程序员学编程的时候,还…

java8 时间加一秒_Java8中对时间的处理

Java8中对时间的处理主要是LocalDate、LocalTime、LocalDateTime这几个类实现,直接看下面的测试代码,注释很详细。java8时间处理测试/*** java8时间处理测试* LocalDate、LocalTime、LocalDateTime* 说明:* * 创建人: LGQ * 创建时间: 2018年…

python创建数据库表_Python 操作数据库(1)SQL基础

一、数据库 关系型数据库 常见的关系型数据库:SQL Server、MySql、MariaDB、SQLite、ORACLE、PostgreSQL等 非关系型数据库 常见的非关系型数据看:MongoDB、HBASE、redis、CouchDB、Neo4j、Cassandra、memcached 非关系型数据库又分为:1. 文档…

C/C++初学者快速提升?

如今,软件开发行业继续向前大步迈进。信息技术越来越吃香,越来越多人学习学习c语言,那么如何系统有效的学习C语言?下面分享给大家的有效学习语言的方法,希望可以帮到你! 一、了解大纲,通览教材 想学好C语言最重要的一…

python以运行效率高著称吗_提升Python程序运行效率的6个方法

Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python应用程序。 1.让关键…

bytebuf池_图文分析ByteBuf是什么

ByteBuf是什么ByteBuf是Netty中非常重要的一个组件,他就像物流公司的运输工具:卡车,火车,甚至是飞机。而物流公司靠什么盈利,就是靠运输货物,可想而知ByteBuf在Netty中是多么的重要。没有了ByteBuf&#xf…

c语言入门经典18个程序

C语言程序设计 QQ群:731871503 功能介绍 从零开始精通C语言教程用于C语言学习交流,分享C语言相关的技术文章,无论是小白还是大白,在这里我们之讲C语言。 1 、 /* 输出 99 口诀。共 9 行 9 列, i 控制行, j …

pytorch 矩阵相乘_深度学习 — — PyTorch入门(三)

点击关注我哦autograd和动态计算图可以说是pytorch中非常核心的部分,我们在之前的文章中提到:autograd其实就是反向求偏导的过程,而在求偏导的过程中,链式求导法则和雅克比矩阵是其实现的数学基础;Tensor构成的动态计算…

python分配 使最大的最小_python3中的heapq模块使用

###heapq-堆排序算法heapq实现了一个适合与Python的列表一起使用的最小堆排序算法。二叉树树中每个节点至多有两个子节点满二叉树树中除了叶子节点,每个节点都有两个子节点什么是完全二叉树在满足满二叉树的性质后,最后一层的叶子节点均需在最左边什么是…

codeblocks如何让输出结果 空格_简单讲讲如何实现两个正整数相加,然后输出这个结果...

首先吧,两个整数123 456,相加得到579,我们就得输出579,这个很容易操作,但是如果是:1212161596156198115645646886148461554 2671232162176217624372497590415915915029125 呢?long ? long lo…

C语言和其他高级语言的最大的区别是什么?

提到C语言,我们知道C语言和其他高级语言的最大的区别就是C语言是要操作内存的! 我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字…

python3 web服务器_python3 简单web服务器

补充:tcp长连接和短连接长连接:客户端向服务器发起连接请求,服务器接收到请求回应给客户端,双方完成三次握手,然后客户端发送消息,服务端回应消息,每一次完成读写操作,套接字不不关闭…