认识、了解爬虫

爬虫概念

爬虫的概念和作用

概念:网络爬虫是伪装成客户端 与 服务端进行数据交互的程序。

HTTP与HTTPS

HTTP协议

超文本传输协议

HTTP是基于TCP/IP通信协议来传递数据(如HTML文件,图片文件,查询结果等)

面向连接的

三次握手建立连接,四次挥手断开连接。

URL

协议+域名(端口默认80)+路径+参数

在这里插入图片描述

端口号

HTTP 80

HTTPS 443

HTTP请求方法

GET 从服务器获取

POST 向服务器提交

HEAD

DELETE

HTTP请求数据

请求正文通常是使用POST方法进行发送的数据,GET方法是没有请求正文的。

请求正文跟上面的消息报头由一个空行隔开。

HTTP请求格式

请求行

请求头

空行

请求数据

在这里插入图片描述

HTTP响应格式

状态行

响应头

空行

响应正文

在这里插入图片描述

HTTP协议特点

无连接,媒体独立,无状态

HTTPS协议

基于tcp/ip 和SSL/TLS协议

会话技术

cookie–凭证、vip

Session是基于Cookie

Session是存储在服务器上的数据

Socket

Socket是一种进程间通信机制,提供一种供应用程序
访问通信协议的操作系统调用,使得网络读写数据
和读写本地文件一样容易

套接(建立网络通讯或进程间通讯)字(可交互的有序的指令串)

请求用二进制请求,接受也用二进制接收

利用socket下载一张图片

import socket
import re
import ssl

url = 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=150342272,3273450093&fm=26&gp=0.jpg'

client = ssl.wrap_socket(socket.socket())

client.connect(('ss1.bdstatic.com', 443))

request = b'GET /70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=150342272,3273450093&fm=26&gp=0.jpg HTTP/1.0\r\nHost: ss1.bdstatic.com\r\n\r\n'

client.send(request)

res = b''
data = client.recv(1024)

while data:
    res = res + data
    data = client.recv(1024)

client.close()

with open('kikiki.jpg', 'wb')as f:
    f.write(re.findall(b'\r\n\r\n(.*)', res, re.S)[0])

小结

请求报文格式

b’GET + 路径 + HTTP/1.0\r\nHost: 域名 \r\n\r\n’
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值