1.网络协议
1.1http协议:超文本传输协议,是一种发送和接收html页面的方法。(使用明文,不加密,不进行身份验证,可能遭遇伪装。)
1.2 https协议:http安全版,在http下面加入ssl层。(在应用层和传输层之间多了一个安全层,通信被加密,需要验证。)
2.请求
2.1 请求目标:URL
统一的资源定位符,类似于windows的文件路径。
举个例子:response=requests.get('http://www.wjy.la/10/10489/').
http:// 请求的协议类型(http/https)超文本传输协议(图片、网页、音频、视频)
www 服务器的名字(万维网)
wjy.la 域名
/ 服务器的根目录(资源在哪里)
10/10489/ 资源的位置
2.2 请求体 request
(在浏览器中查看请求体的信息:header)
请求告诉服务器这些内容:请求行,请求头部,空行,请求数据。
2.3 请求方法
(1)get请求:一般情况下,只从服务器获取数据,并不会对服务器资源产生任何影响。
(2) post请求:向服务器发送数据(登录)、上传文件等,会对服务器资源产生影响。
2.4 常用的请求报头(header)
header是浏览器给服务器发送的消息,服务器通过这里的消息鉴定我们的身份。
(1)accept :浏览器告诉服务器,自己接受什么类型的数据,文字,图片等。
(2)accept-charset:浏览器申明自己接受的语言。
(3)accept-encoding:浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法。
(4)user-agent:辨别浏览器版本
(5)cookie:为了辨别用户身份,在用户的客户端上保存的数据。
2.5 Network
Network的功能是:记录在当前页面上发生的所有请求。
只有比较老(或比较轻量)的网站,我们用requests和BeautifulSoup就能解决它们,而对于比较复杂的网站,关键信息都是在实时网页的请求中,我们需要找到被隐藏的数据请求,才能继续进行下一步。
json则是另一种组织数据的格式,和html一样,常用来做网络数据传输。
json和XHR之间的关系:XHR用于传输数据,它能传输很多种数据,json是被传输的一种数据格式。
3.beautiful soup
通过 requests 库已经可以抓到网页源码,接下来要从源码中找到并提取数据。Beautiful Soup 是 python 的一个库,其最主要的功能是从网页中抓取数据。Beautiful Soup 目前已经被移植到 bs4 库中,也就是说在导入 Beautiful Soup 时需要先安装 bs4 库。