Python爬虫大数据采集与挖掘第二次课记录20230224

文章介绍了Web页面的相关技术,包括正则表达式的应用示例,以及Web服务器如Apache、Nginx等的配置。接着讨论了Web应用架构,如Client/Server模型和Web服务集群。此外,讲解了Robots协议,它是网站与爬虫之间的访问规范,并提到了HTTP协议的不同版本及报文结构,包括HTTP状态码和HTTPS的安全特性。
摘要由CSDN通过智能技术生成

第二章   Web页面及相关技术

常用的pattern

import re
ret = re.findall('ca?t',"ct and mouse")
print(ret)
ret = re.findall('ca+t',"caaat and mouse")
print(ret)
ret=re.findall('ca{1,5}t',"caaaat catd mouse")
print(ret)
ret=re.findall('\d','a1b22c666')
print(ret)
s='''<li><a href="https://www.baidu.com/s?ie=UTF-8&wd=csdn></a><li>'''
re.findall("http://[a-zA-Z0-9/\.\-*]",s)
print(ret)


****************************************************
第三章   Web应用架构与协议

3.1  常用的Web服务器软件

3.1.1  流行的Web服务器软件

常见的Web服务器有Apache、IIS(Internet Information Server)、Nginx、Lighttpd、Zeus、Resin、Tomact等等

3.1.2  在Python中配置Web服务器

(1)通过执行cmd,进入Windows控制台

(2)切换到Web服务器的虚拟根目录,也就是存放网页的根目录位置

(3)执行命令:python-m http.server 端口号

---------------------------------------------------------------------------------------------------------------------------------

3.2   Web服务器的应用架构

3.2.1   典型的应用架构


1.Client/Server
2.Client/Server.Database
3.Web服务集群
4.虚拟主机

3.2.2   Web页面类型


        从Web网页的组成结构看,一个标准的网页一般包含4个部分,即内容、结构、表现效果和行为。
内容是网页中直接传达给阅读者的信息,包括文本、数据、图片、音/视频等;
结构是指Web页面的布局,对内容进行分类使之更具有逻辑性,符合用户的浏览习惯;
表现效果指对已经结构化的内容进行和死绝感官上的渲染,例如字体、颜色等;
行为则是指网页内容的生成方式

3.2.3  页面文件的组织方式
        对于爬虫来说,在获取al.html页面之后要寻找其中的href超链接。对于绝对链接,只需要把“href=”后面的字符串提取出来即可;而对于相对连接,没有完整的http,单纯从这个href所指定的链接无法知道其真正的结果,去要进行超链接的转换。

<base href="http://127.0.0.1:8080/aaa/"/>


那么就意味着该文件中所有的超链接都以根目录下的aaa子目录为当前目录。因此作为爬虫程序,也应当检查HTML;文档中是否存在<base>标签。

---------------------------------------------------------------------------------------------------------------------------------

3.3   Robots协议

3.3.1  Robots协议的来历

3.3.2 Robots协议的规范与实现

        在浏览器中打开网页后,在网站首页的地址后面添加“/robots.txt”,如果网站设置了访问许可,按回车就可以看到网站的Robots协议,即robots.txt文件的内容。

        robots.txt文件的具体约定如下:

(1)文件中包含一个或多个记录,每个记录有一个或多个空白行隔开。每个记录由多行造成,每行的形式为:

<field>:<optionalspace><balue><optionalspace>

指出了每个字段及其对应的值。字段名由User-Agent、Disallow、Allow,每个记录就是有这些关键词来规定爬虫的访问许可。

        在一个记录中可以有多个User-Agent、多个Disallow或Allow。

(2)User-Agent:User-Agent的使用方式是User-Agent[agent_name],其中agent_name有两种典型形式,即*和具体的爬虫标识。例如:

User-Agent:*                        表示所定义的访问许可适用于所有爬虫

User-Agent:Baiduspider      表示所定义的访问许可适用于标识为Baiduspider的爬虫

例如百度的爬虫可以在"http://baidu.com/search/spider.htm"查到。

          

(3)Disallow或Allow:Disallow和Allow的使用方法相同,只是决定了不同的访问许可。这种访问许可是针对目录、文件或页面而言,即允许或不允许访问。Robots协议的默认规则是,一个目录如果没有显式声明为Disallow,他就是允许访问的。

        Robots协议通过Allow与Disallow的搭配使用,,对爬虫的抓取实行限制或方形。如果网站大部分是不允许爬虫抓取的,则可以像淘宝一样,定义允许访问的模式,其他的则不允许。反之,如果大部分是允许抓取的,则可以参考百度的做法,显式定义不允许访问的模式。

---------------------------------------------------------------------------------------------------------------------------------

3.4   超文本传输协议(Hyper Text Transfer Protocol,HTTP)协议

超文本传输协议是互联网上使用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。HTTP是基于TCP/IP协议的应用层协议,采用请求/相应模型。通过使用Web浏览器/网络爬虫或其他工具,客户端向服务器上的指定端口(默认端口为80)发送一个HTTP请求,服务器根据接收到的请求向客户端发送响应信息。

3.4.1  HTTP版本的技术特性

1.HTTP 0.9

        HTTP0.9发布于1991年,只允许客户端发送GET这一种请求,不支持请求头,因此客户端无法向服务器端传递太多消息。

2.HTTP 1.0

        HTTP1.0于1996年发布,在HTTP0.9的基础上增加了许多新内容。

3.HTTP 1.1

        HTTP1.1发布于1997年,是目前使用最广泛的HTTP协议版本,与之前的版本相比,改进主要集中在提高性能/安全性以及数据类型处理等方面。

4.HTTP 2

HTTP2于2015年发布,在实现HTTP1.1完全于一兼容的基础上,他在性能上实现了大幅提升,但尚未真正应用。

3.4.2  HTTP报文

分为请求报文(request Massage)和响应报文(Respone Massage)

1.请求报文

HTTP规定的请求报文由起始行、头部、以及实体组成

具体格式如下:

---------------------------------------------------------------------------------------

<method><request-URL><version>                        #起始行(请求行)

<headers>                               #头部(请求头)

                                                #请求头结束

<entity-body>                        #实体(请求体)

---------------------------------------------------------------------------------------

注意:在使用GET和HEAD方法请求网页时没有请求体。其请求参数表现在请求航,附加在URL后面,使用“?”来表示URL的结尾和请求参数的开始。

2.响应报文

与请求报文类似,HTTP响应报文由起始行、头部以及实体构成。HTTP1.0和HTTP1.1规定的响应报文格式如下:

---------------------------------------------------------------------------------------

<version><status><reason-phrase>

<headers>

<entity-body>

---------------------------------------------------------------------------------------

3.4.3 HTTP头部

3.4.4 HTTP状态码

HTTP状态码

1.成功状态码:

200(OK)

202(Accepted)

2.重定向状态码:

301(MovedPermanely)

304

3.客户端错误状态码:

400

401

403

404

4.服务器错误状态码

500

503

 3.4.5  HTTPS(超文本传输安全协议)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值