26highlights for day 11 of Python

19 篇文章 0 订阅
18 篇文章 0 订阅

1.常见的加密算法有哪些?

MD5 AES DES hash+盐…

2.md5加密算法依赖于那个包
import hashlib

3.m5的特点是什么?如何解密

1. 不可逆(只能加密不能解密)

解密依赖于数据库查询

2. 加密后的数据定长(一般32位)

3. 是一种摘要算法

4.爬虫分类有哪些

通用爬虫 聚焦爬虫

5.爬虫的目的是什么
自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。

6.网页大体可以分为哪几类
静态网页
页面是写死的,爬起来最简单
动态网页(js,ajax)
根据参数的不同对应不同的页面,数据动态加载,爬虫有一定难度

7.url的基本格式是什么
scheme://host[:port#]/path/…/[?query-string][#anchor]

8.常用的网络协议有哪些
http , https ,ftp

9.http和https的区别是什么
HTTP 和 HTTPS 的相同点
大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一个协议头(https)的说明,其他都是一样的。

HTTP 和 HTTPS 的不同之处
HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
HTTP 无需加密,而 HTTPS 对传输的数据进行加密
HTTP 无需证书,而 HTTPS 需要认证证书

10.get和post的区别是什么

  1. 参数位置
    GET:参数位于网址后面
    POST:参数位于请求题中
  2. 安全性
    POST相比GET更安全,但是两者都不安全
  3. 数据大小
    GET:参数长度有限制,具体取决于浏览器
    POST:参数理论上没限制,实际上取决于服务器的处理能力
  4. 应用场景
    GET:用于索要数据
    POST:用于上传/提交数据

11.常用端口有哪些?
微信的端口为80
数据库的端口为3306
邮箱端口为25
HTTPS的端口号为443
例如https://www.baidu.com:443
HTTP的端口号为80
例如http://www.baidu.com:80

12.客户端和服务器如何交流?

在这里插入图片描述
Client:客户端
Server:服务器
Request:请求
Response:响应

13.浏览器发送请求的过程
当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

14.常用的请求方法有哪些
OPTIONS: 返回服务器针对特定资源所支持的http请求方法。
HEAD: 向服务器索要与get请求相一致的响应,只不过响应体将不会被返回。
GET: 向特定资源发出请求
PUT: 向指定资源位置上传其最新内容
POST: 向指定资源提交数据进行处理请求
DELETE: 请求服务器删除指定URI所标识的资源
PATCH: 用来将局部修改应用于某一资源

15.常见的报文有哪些
请求报文+响应报文

16.请求(响应)报文结构是什么
请求报文的基本格式
请求行 请求头 空行 请求数据
响应报文的基本格式
状态行 响应头 空行 响应正文

17.常见请求头有哪些
User-Agent:模拟浏览器访问
Cookie:模拟用户登录信息
Host:访问网址的IP是什么
Accept:可接受的网页格式是什么
Accept-Language:可接受的语言是什么
Accept-Encoding:可接受的编码格式

18.常见状态码有哪些
200/OK: 请求成功
201/Created: 请求已被实现,且一个新资源已根据请求被建立,URI跟随Location头信息返回。
202/Accepted: 服务器已接受请求,但尚未处理。
400/Bad Request: 请求无法被服务器理解
401/Unauthorized: 当前请求需要用户验证
403/Forbidden: 服务器已理解请求,但拒绝执行。
404/Not Found

19.网络七层协议是什么
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

20.http\smtp\udp\tcp等分别位于那一层
http /smtp 应用层
udp\tcp 传输层

21.http常用的版本是哪个
HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

22.http工作的原理

  1. 客户端连接到Web服务器
  2. 发送HTTP请求
  3. 服务器接受请求并返回HTTP响应
  4. 释放连接TCP连接
  5. 客户端浏览器解析HTML内容

23.cookie的常用字段有哪些
Name:cookie存储的字段名
Value:cookie存储的信息
Domain:该cookie能够在哪些域名下使用
Expires:Cookie的过期时间

24.常用的抓包工具有哪些
在这里插入图片描述
25.常用的网络请求库有哪些

import urllib

import urllib3

import httplib2

import requests

http://2.python-requests.org/zh_CN/latest/index.html

26.如何用requests获取音乐等接口的数据
import requests

class BaiduMusic:
base_url = “http://tingapi.ting.baidu.com/v1/restserver/ting
def get(self, url):
headers = {}
response = requests.get(url, headers=headers)
# response.encoding = response.apparent_encoding
return response.json()
# return response.text
def songlist(self, type=1, size=10, offset=0):
url = self.base_url + “?” + f"method=baidu.ting.billboard.billList&type={type}&size={size}&offset={offset}"
songs = self.get(url)
songs = songs[‘song_list’]
for song in songs:
author = song[‘author’]
title = song[‘title’]
print(author, title)
def search(self, name):
url = self.base_url + “?” + f"method=baidu.ting.search.catalogSug&query={name}"
songs = self.get(url)
songs = songs[‘song’]
for song in songs:
songname = song[‘songname’]
artistname = song[‘artistname’]
print(songname, artistname)
def lrc(self, songid):
url = self.base_url + “?” + f"method=baidu.ting.song.lry&songid={songid}"
lrc_info = self.get(url)
title = lrc_info[‘title’]
lrcContent = lrc_info[‘lrcContent’]
print(title, lrcContent)

baidu = BaiduMusic()

baidu.songlist(1)

baidu.songlist(2)

baidu.songlist(11)

baidu.songlist(12, size=20) # 获取分类编号为12的第一页的20条数据

baidu.songlist(12, size=20, offset=1) # 获取分类编号为12的第一页的20条数据

baidu.search(“海阔天空”)
baidu.lrc(“877578”)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值