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的区别是什么
- 参数位置
GET:参数位于网址后面
POST:参数位于请求题中 - 安全性
POST相比GET更安全,但是两者都不安全 - 数据大小
GET:参数长度有限制,具体取决于浏览器
POST:参数理论上没限制,实际上取决于服务器的处理能力 - 应用场景
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工作的原理
- 客户端连接到Web服务器
- 发送HTTP请求
- 服务器接受请求并返回HTTP响应
- 释放连接TCP连接
- 客户端浏览器解析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”)