python正则表达以及爬虫(一)

一、Python正则表达式

1、正则表达式的概念
通过一组特殊的字符串按照指定的序列定义的一种规则,称为正则表达式。

2、正则表达式的主要作用
主要用于用户输入的数据进行验证,验证用户输入的数据是否符合定义的规则。

3、正则表达式基本语法
例如对手机号码进行正则表达式的编写
reg=^1[35789]\d{9}$
^:表示开始
1:表示第一个字符为数字1
[35789]:从指定的字符中选择一个
\d:表示数字
{n}:n表示数字的个数,表示任意n个数字
+:表示1到n次,字符串出现的次数
*:表示0到n次,字符串出现的次数
?:表示0到1次
w:表示任意字母

4、python中使用re模块定义正则
Import re

5、re中常用的方法
(1)match方法
从第一个字符开始匹配,如果第一个起始字符不匹配,则返回None
在这里插入图片描述

运行效果如下:
在这里插入图片描述

(2)使用group方法进行正则匹配
分组根据正则表达式匹配指定的字符,并返回字符信息
在这里插入图片描述
运行结果如下:
在这里插入图片描述
(3)seach方法
扫描整个字符串并进行比对,返回第1个成功的匹配位置
在这里插入图片描述

结果如下:
在这里插入图片描述

二、python中的爬虫

1、主要用于爬取网页中的数据
2、当前网络传输协议
(1)http协议:超文本传输协议,传输的数据格式为html(超文本标记语言)
(2)Https协议:具有安全验证的超文本传输协议,加入了ssl安全证书
(3)ssl:安全套接字协议证书

3、http请求的方式
(1)GET请求方式:请求的参数信息会显示在地址栏中,传输的参数个数不能超过255个字符。
(2)POST请求方式:请求的信息是隐藏的,不会显示在地址栏中,向服务器传递的数据可以达到20M。

4、URL
统一资源定位,实际为请求的网络资源地址。
例如:
http://www.sohu.com/index.html

5、请求的状态码
(1)200:表示请求的资源已响应成功。
(2)404:表示资源不存在
(3)500:请求资源成功,但是服务器内部错误
(4)403:请求的服务器忙,无法响应。

6、网页请求的调试工具
(1)Fiddler:用于调试请求响应的页面信息
(2)浏览器自带的调试工具,按F12显示调试的网页信息

7、使用urllib爬取网页信息
(1)python3以上版本使用urllib2,引入的组件库为:
Import urllib.request

(2)获取html对象的方法
html=urllib.request.urlopen(“url地址”);
例如,获取百度首页信息
html=urllib.request.urlopen(“http://www.baidu.com”);

(3)读取网页信息
x=html.read();

示例如下:
import urllib.request

#获取请求对象
request=urllib.request.Request(“https://www.sohu.com”)

#User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36
request.add_header(“User-Agent”,“Mozilla/5.0”) #用于反爬虫处理,伪装为火狐浏览器访问
html=urllib.request.urlopen(request)

print(html.read())

完整的请求响应代码如下所示:
在这里插入图片描述
结果如下:
在这里插入图片描述

(4)使用urllibencode转换字典为搜索的url字符串格式
Urllib.parse.urlencode(字典对象)

示例如下:从键盘输入要搜索的信息进行baidu查询

在这里插入图片描述
结果如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值