正则表达式与网页爬虫【re与urllib】简单使用

news/2024/7/19 11:39:31 标签: python, 正则表达式, 爬虫

正则表达式与网页爬虫【re与urllib】简单使用

一、Python正则表达式

这个比较基础 大概 不是太细 这篇博文【https://blog.csdn.net/qq_43636709/article/details/107140529】后面有几个比较好的实例 可以拿来练手

1、正则表达式的概念

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

2、正则表达式的主要作用

主要用于用户输入的数据进行验证,验证用户输入的数据是否符合定义的规则。

3、正则表达式基本语法

例如对手机号码进行正则表达式的编写

reg=^1[35789]\d{9}$

^:表示开始

1:表示第一个字符为数字1

\d:表示数字

{n}:n表示数字的个数,表示任意n个数字

+:表示1到n次,字符串出现的次数

*:表示0到n次,字符串出现的次数

?:表示0到1次

w:表示任意字母

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

import re

5、re中常用的方法

(1) match方法

从第一个字符开始匹配,如果第一个起始字符不匹配,则返回None

import re s=“www.sohu.com” print(re.match(“www”,s).span()) #返回匹配的字符串的位置 print(re.match(“com”,s))#与起始字符串不匹配,返回None 运行效果如下: (0, 3) None

(2) 使用group方法进行正则匹配

分组根据正则表达式匹配指定的字符,并返回字符信息

python"> lin="Cats are smarter than dog"     
 matchObj=re.match(r'(.*)are(.*?)',lin,re.M|re.I)  #定义正则表达式并与lin中 的字符串进行比对re.M表示多行匹配,re.I表示忽略大小写     
 print(matchObj.group())#匹配are之前的所有字符  
 print(matchObj.group(1))#匹配are之前的第1个位置的字符  
 print(matchObj.group(2))#匹配are之前的第2个位置的字符 

(3) seach方法

扫描整个字符串并进行比对,返回第1个成功的匹配位置

python"> import re     
 s="www.sohu.com"  
 print(re.search("www",s))  
 print(re.search("com",s))     
 结果如下:  <re.Match object; span=(0, 3),  match='www'>  <re.Match object; span=(9, 12),  match='com'>  

python_77">二、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()

完整的请求响应代码如下所示:

python">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")  #用于反爬虫处理,伪装为火狐浏览器访问  
response=urllib.request.urlopen(request)  
print("请求响应的状态码:",response.getcode()) 
print("获取请求的网站地址:",response.geturl())  
print(response.read())

(4) 使用urllibencode转换字典为搜索的url字符串格式

Urllib.parse.urlencode(字典对象)

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

python">import urllib.request  
import os     
base_url="https://www.baidu.com/s?"     
seacherString=input("请输入要查找的信息:")     
dic={'wd':seacherString}     
sc=urllib.parse.urlencode(dic)  #转换字典为搜索字符串信息     
full_url=base_url+sc  #拼接要搜索的url地址信息  
print("要所搜的信息为:",full_url)     
request=urllib.request.Request(full_url)  #获取请求对象        
#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")  #用于反爬虫处理,伪装为火狐浏览器访问  
response=urllib.request.urlopen(request)     
print(response.read())         

http://www.niftyadmin.cn/n/1758328.html

相关文章

python数据分析与可视化【一】python基础实例

用python做数据分析与可视化(一) python编程基础 这一块前面我写过博客&#xff0c;奉上链接&#xff1a;python基础 这篇就来看看几个小实例 后面有python很基础的知识点和例子 后面数据分析能用上 下一更上numpy与pandas的细节 实训一 1.读取csv文件 import csv f open(&…

数据分析与可视化(二)小爬虫

python数据分析与可视化&#xff08;二&#xff09;第一篇是python基础 代码比较多 用于学过一定python基础的人练习 链接&#xff1a;https://blog.csdn.net/qq_43636709/article/details/109538588 这一边是简单的爬虫 很基础的 首先爬虫之前也写过一点正则表达式和urllib&a…

数据分析与可视化(三)numpy

标题数据分析与可视化&#xff08;三&#xff09; numpy pandas比较重要 东西多 下一次把 这个细节好多啊 但常用的也不太多 而且可以在用的时候找的 不过还是知道些 会一点的好 这是实例 python提供了众多可以支持数据处理的包&#xff0c;因而利用python进行数据分析非常简洁…

numpy实例

import numpy as np import csviris_data [] with open("data//iris.csv") as csvfile:# 使用csv.reader读取csvfile中的文件csv_reader csv.reader(csvfile) # 读取第一行每一列的标题birth_header next(csv_reader) # 将csv 文件中的数据保存到birth_data中f…

爬虫入门实践之爬豆瓣Top250案例

爬虫的四大步骤 获取网页源代码获取标签&#xff08;tag&#xff09;正则表达式匹配保存数据 获取网页源代码 常用的有urllib的python自带库还有第三方库requests urllib库 #导包 import os import time import urllib.request #爬取指定url网页 header {User-Agent: Moz…

hive与mysql的安装与配置

hive与mysql的安装与配置 hive是基于hadoop的数据仓库工具&#xff0c;将一定格式的文件映射为一张张表&#xff0c;因此hive版本和hadoop版本有对应关系&#xff0c;一定要检查自己安装的hadoop和hive版本是否兼容&#xff1b; hadoop版本&#xff1a;2.9.1&#xff0c;hive…

利用MapReduce的思想用Hive做词频统计

利用MapReduce的思想用Hive做词频统计 关于mapreduce hive 等的关系大家可以参考这位博主的文章&#xff1a; 1.打开hadoop与hive start-dfs.sh 或者 start-all.sh qive或者进到hive安装目录的bin下再输入hive 2.在hive shell下面先建立数据库WordCount &#xff0c;然后…

Scrapy下载以及简单爬虫项目的创建

Scrapy下载以及爬虫项目的创建 一.概述【图片传不了 心态么得了】 1.使用python语言开发的爬虫组件&#xff0c;可以方便的从网站爬取需要的网页数据。 2.可以对网页元素进行解析并获取指定的数据&#xff0c;这些数据可以与实体当中的属性对应。【方便存储到数据库中】 3.…