Python 网络爬虫简介与表达式基础|学习笔记

简介: 快速学习 Python 网络爬虫简介与表达式基础

开发者学堂课程【Python 网络爬虫实战Python 网络爬虫简介与表达式基础】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/531/detail/7144


Python 网络爬虫简介与表达式基础


内容介绍:

一、Python 网络爬虫课程体系简介

二、Python 网络爬虫是什么

三、正则表达式基础实战

四、Xpath 表达式基础实战


一、Python 网络爬虫课程体系简介

1.Python 网络爬虫简介与表达式基础(本节)

2.Urllib 爬虫项目编写实战

3.抓包分析技术精讲

4.Requests 爬虫项目编写实战

5.Scrapy 爬虫项目编写实战

6.前程无忧招聘信息爬虫项目开发实战

7.淘宝网商品信息爬虫项目开发实战

8.知乎网信息爬虫项目开发实战(含登录)

9.爬虫常见的反爬策略与反爬攻克手段

10.分布式爬虫编写实战

Python 基础课程: https://edu.aliyun.com/course/154


二、Python 网络爬虫是什么

网络爬虫是一种互联网信息的自动化采集程序,主要作用是代替人工对互联网中的数据进行自动采集与整理,以快速地、批量地获取目标数据。

如下所示,是网络爬虫可以做的一些事情:

1.批量采集某个领域的招聘数据,对某个行业的招聘情况进行分析

2.批量采集某个行业的电商数据,以分析出具体热销商品,进行商业决策

3.采集目标客户数据,以进行后续营销

4.批量爬取腾讯动漫的漫画,以实现脱网本地集中浏览

5.开发一款火车票抢票程序,以实现自动抢票

......


三、正则表达式基础实战

网络爬虫程序在将网页爬下来之后,其中还有一个关键的步骤就是需要对我们关注的目标信息进行提取,而表达式一般就是用于信息筛选提取的工具。

正则表达式是一种功能强大的表达式,并且非常好用,所以建议掌握。

打开idle实验。

基础1:

全局匹配函数使用格式     re.compile(正则表达式) .findall(源字符串)

普通字符            正常匹配

\n                  匹配换行符

\t                  匹配制表符

\w                 匹配字母、数字、下划线

\W                 匹配除字母、数字、下划线

\d                  匹配十进制数字

\D                 匹配除十进制数字

\s                  匹配空白字符

\S                  匹配除空白字符

[ab89x]             原子表,匹配ab89x中的任意一个

[^ab89x]             原子表,匹配除ab89x中的任意一个

实例1:

源字符串:"aliyunedu"正则表达式:"yu"匹配出什么?    yu

源字符串:"""aliyun

edu"""  //出现了换行

正则表达式:“yun\n”匹配出什么?   yun\n

源字符串:"aliyu89787nedu"正则表达式:"\w\d\w\d\d\w"匹配出什么?   u89787

源字符串:"aliyu89787nedu"正则表达式:"\w\d[nedu]\w"匹配出什么?   87ne

运行代码示例:

import re

string="aliyunedu"

pat="yu"

re.comp ile(pat).findall (string)

输出结果[ 'yu']

基础2:

.   匹配除换行外任意一个字符

^  匹配开始位置

$  匹配结束位置

*  前一个字符出现o\1\多次

?  前一个字符出现0\1次

+  前一个字符出现1\多次

{n}  前一个字符恰好出现n次

{n,}  前一个字符至少n次

{n,m}  前一个字符至少n,至多m次

|  模式选择符或

()  模式单元,通俗来说就是:想提取出什么内容,就在正则中用小括号将其括起来

实例2:

源字符串:"aliyunnnnji87362387aoyubaidu""

正则表达式:"ali..."

匹配出什么?   aliyun

正则表达式:"^li..."

匹配出什么?   None

正则表达式:"^ali..."

匹配出什么?   aliyun

正则表达式:"bai..$"

匹配出什么?   baidu

正则表达式:"ali.*"

匹配出什么?aliyunnnnji87362387aoyubaidu

Tips:默认贪婪,即默认尽可能多地进行匹配

正则表达式:"aliyun+"

匹配出什么?   aliyunnnn

正则表达式:"aliyun"

匹配出什么?   aliyun

正则表达式:"yun{1,2}"

匹配出什么?   yunn

正则表达式:"^al(i..)."

匹配出什么?    iyu

基础3:

贪婪模式:尽可能多地匹配

懒惰模式:尽可能少地匹配,精准模式

默认贪婪模式

如果出现如下组合,则代表为懒惰模式;

*?

+?

实例3:

源字符串: "poythonyhjskisa"

正则表达式:"p.*y"

匹配出什么?   poxtphony

为什么?   默认贪婪模式

源字符串:"poythonyhjskisa"

正则表达式:"p.*?y

匹配出什么?  ['poy', 'phony"]

为什么?   懒惰模式,精准匹配

基础4:

模式修正符:在不改变正则表达式的情况下通过模式修正符使匹配结果发生更改

re.S    让.也可以匹配多行

re.l    让匹配时忽略大小写(默认情况下正则表达式严格区分大小写)

实例4:

源字符串:"Python"

正则表达式:“pyt"

匹配方式:re.compile("pyt").findall("Python")

匹配结果:[]

源字符串:"Python"

正则表达式:"pyt"

匹配方式:re.compile("pyt" ,re.l).findall("Python")

匹配结果:Pyt

源字符串:string="Python"

正则表达式:"pyt"

匹配方式:re.compile("pyt",re.l).findall("Python")

匹配结果:Pyt

源字符串: string="""我是阿里云大学

欢迎来学习

Python 网络爬虫课程

"""

正则表达式:pat="阿里.*?Python"

匹配方式:re.compile(pat).findall(string)

匹配结果:[]

源字符串: string="""我是阿里云大学

欢迎来学习

Python网络爬虫课程

"""

正则表达式: pat="阿 里. * ?Python"

匹配方式:re.compile(pat,re.S)findall(string)

匹配结果: ['阿里云大学\n欢迎来学习\nPython']


四、Xpath 表达式基础实战

除了正则表达式之外,还有一些非常好用的信息筛选的工具,比如XPath表达式、BeautifulSoup 等等,不可能也不需要都进行掌握,讲解一下XPath表达式。

/  逐层提取

text()  提取标签下面的文本

//标签名**  提取所有名为**的标签

//标签名[@属性='属性值']  提取属性为XX的标签

@属性名  代表取某个属性值

实例:

<html>

<head>

<title>

主页

</title>

</head>

<body>

<p>abc</p>

<p>bbbvb</p>

<a href="//gd.alibaba.com/go/v/pcdetail" target="_top">安全推荐</a>

<a href="//ad.alibaba. com/go/v/pcdetail" target="_top">安全推荐2</a>

<div class="J_AsyncDC" data-type="dr">

<div id="official-remind">明月几时有

</div>

</div>

</body>

提取标题:/html/head/title/text()

提取所有的div标签://div

提取div中<div class="tools">标签的内容:

//div[ @class='tools']/text()

相关文章
|
21天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
221 55
|
1月前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
160 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
6天前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
9天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
10天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
19天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
24天前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
|
1月前
|
数据采集 JSON 开发者
Python爬虫京东商品详情数据接口
京东商品详情数据接口(JD.item_get)提供商品标题、价格、品牌、规格、图片等详细信息,适用于电商数据分析、竞品分析等。开发者需先注册账号、创建应用并申请接口权限,使用时需遵循相关规则,注意数据更新频率和错误处理。示例代码展示了如何通过 Python 调用此接口并处理返回的 JSON 数据。
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
74 3