第十四天-网络爬虫基础

目录

1.什么是爬虫

2.网络协议

OSI七层参考模型

TCP/IP模型

1.应用层

2.传输层

3.网络层

3.HTTP协议

1.介绍

2.http版本:

3.请求格式

4.请求方法

5.HTTP响应

状态码:

6.http如何连接

4.Python requests模块

 1.安装

2.使用get/post

3.响应response

4.发送自定义请求头

5.请求超时

6.设置cookies

7.设置代理

8.ssl证书效验

9.异常

10.demo


1.什么是爬虫

1.爬虫(又被称为网页蜘蛛,网络机器人),是按照一定规则,自动的抓取万维网中的程序或者脚本,是搜索引擎的重要组成;比如:百度、

2.爬虫应用:1.搜索引擎,2.数据分析,3.人工智能,4.薅羊毛(抢车票)

3.常见爬虫产品:神箭手、八爪鱼、造数、后裔采集器

4.什么事是爬虫工程师:我们不生成数据我们是数据的搬运工

5.爬虫工程师的基础

        1.python编程基础

        2.linux系统操作

        3.http协议

        4.数据库的增删改查

2.网络协议

1. 协议可以理解为“规则”,是数据传输和数据的解释和规则

OSI七层参考模型

TCP/IP模型

1. 1974年诞生,5层协议

1.应用层

基于tcp和udp

1.http:超文本传输协议,基于tcp,使用80端口号,适用于从www服务器传输超文本到本地浏览器的传输协议

2.SMTP:用于简单的邮件传输协议,基于tcp,使用25端口号,是一组2用于由源地址到目的地传送邮件的规则,用来控制信件的发送,中转。

3.FTP:文件传送协议,基于tcp,一般上传下载用FTP服务,数据端口20,控制端口21

4.telnet:远程登录协议,基于tcp,使用23端口,是internet远程登录服务的标准协议和主要方式。为用户提供了本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序链接到服务器。使用明码传送,保密性差,简单方便。

5.dns:域名解析,基于UDP,使用53端口,提供域名到ip之间的转换

6.SSH:安全外壳协议,基于tcp,使用端口22,为建立在应用层和传输层基础上的安全协议,SSH是目前比较可靠,专门为远程登录会话和其他网络服务提供安全性的协议

2.传输层

1. TCP: 传输控制协议,一种面向链接的可靠的,基于字节流的传输层通信协议。

2.UDP:用户数据报协议,一种无链接的通信协议,不可靠,基于报文的传输层通信协议;

3.SCTP: 流量传输控制协议,一种面向连接的流传输协议,是tcp的升级改善tcp的不足

4.MPTCP:多路径传输协议。

3.网络层

1. IP:Internet协议。通过路由选择将下一条ip封装后交给接口层。ip数据报是无连接服务。

2. ICMP:Internet控制报文协议,是网络层的补充。用于在P主机、路由器之间传递控制消息,检测网络通不通,主机是否可达,路由是否可用等网络本身的消息;如:ping ip地址 就是使用本协议

3.ARP: 地址解析协议,是通过目标设备的ip地址,查询目标设备的mac地址,以保证通信的顺利进行;

4.RARP:反向地址解析协议。

3.HTTP协议

1.介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的一种网络协议,他基于TCP的应用层协议,客户端和服务端进行通信的一种规则,他的模式非常简单,就是客户端发起请求,服务器响应请求;

2.http版本:

目前使用最多的是HTTP/1.1

3.请求格式

4.请求方法

5.HTTP响应

  

状态码:

6.http如何连接

1.dns域名解析

2. 建立链接-tcp三次握手

3.发送http请求

如:post、get请求等

4.断开连接-tcp四次挥手

4.Python requests模块

1. request是一个简单的python HTTP库

2.英文文档:Requests: HTTP for Humans™ — Requests 2.31.0 documentation

 1.安装

pip install requests

import requests

2.使用get/post

1. get:

response=requests.get(url="网址")

#构造get 参数 #返回 网址?key=value

data={"key":"value"}

response=requests.get(url="网址",params=data)

print(response.url)

2.post

data={}

response=request.post("网址",data=data)

3.响应response

1. 获取访问头

response.headers

2.获取返回体

response.text

3.获取json

response.json()

4.获取字节码:content

与text两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串

response.content

5.响应状态码:status_code

1. 200:为成功

response.status_code

6.获取请求头

response.request.headers

7.查看cookies

cookies=response.cookies

cookies["获取值"]

4.发送自定义请求头

header={}

resposne.get(url="",headers=header)

5.请求超时

#timeout 默认单位:秒

resposne.get(url="",timeout=0.001)

6.设置cookies

#使用字典构建cookies

cookies=dict(key=value)

response=requests.get(url="网址",cookies=cookies)

7.设置代理

1. 解决封禁ip问题

2.伪装真实IP地址,隐藏请求

3.代理免费的不好用,一般推荐付费代理iP;大家自行寻找

4.ip池和隧道代理的区别

 5.使用:

proxy={

        "http":"代理地址",

        "https":"代理地址"

}

response=requests.get(url="",proxies=proxy)

8.ssl证书效验

1. Requests可以为https请求验证ssl证书,就像web浏览器一样

2.参数verify:默认开启True, ,如ssl验证不通过则会报错

response=requests.get(url="",verify=True)

9.异常

10.demo

1. 下载图片

#下载图片
response_img=requests.get("https://p.qqan.com/up/2024-2/17091001248368361.jpg")
with open("17091001248368361.jpg","wb")  as f:
    f.write(response_img.content)

2.保存登录凭证

使用requests.session() 自动化记录登录信息

#定义session()

session=requests.session()

#登录

login_response=session.post("登录接口",data=data)

#访问

data_response=session.post("业务页面",data=data)

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值