爬虫基本知识梳理

Python 获取网易云音乐热门评论

爬虫基本知识

日常操作中打开网页流程:
1. 输入网站URL,按回车键
2. 浏览器发送请求至远程服务器
3. 远程服务器返回数据
4. 浏览器渲染页面展示出合适的页面

  • 我们知道我们打开浏览器访问某个网址本质上是向服务器发送了一定的请求,服务器在收到我们的请求之后,会根据我们的请求返回数据,然后通过浏览器将这些数据解析好,呈现在我们面前
  • 如果我们使用代码的话,就要跳过浏览器的这个步骤,直接向服务器发送一定的数据,然后再取回服务器返回的数据,提取我们想要的信息。
  • 但是问题是,有的时候服务器需要对我们发送的请求进行校验,如果它认为我们的请求是非法的,就会不返回数据,或者返回错误的数据。
  • 所以为了避免发生这种情况,我们有的时候需要把程序伪装成一个正常的用户,以便顺利得到服务器的回应。
  • 如何伪装呢?这就要看用户通过浏览器访问一个网页与我们通过程序一个网页之间的区别。通常来说,我们通过浏览器访问一个网页,除了发送访问的URL之外,还会给服务器发送额外的信息,比如headers(头部信息)等,这就相当于是请求的身份证明,服务器看到了这些数据,就会知道我们是通过正常的浏览器访问的,就会乖乖地返回数据给我们了。
  • 有的时候,我们必须在登录状态下才能得到一些数据,所以我么必须要模拟登录。本质上来说,通过浏览器登录就是post一些表单信息给服务器(包括用户名,密码等信息),服务器校验之后我们就可以顺利登录了,利用程序也是一样,浏览器post什么数据,我们原样发送就可以了。

小技巧

如果你在使用火狐浏览器或者Chrome的地方,也许你会注意到有一个叫做开发者工具(chrome)或者web控制台(forefox)的地方。这个工具非常有用,因为利用它,我们可以清楚地看到在访问一个网站的过程中,浏览器发送了什么信息,服务器究竟返回了什么信息,这些信息是我们如何写爬虫的关键所在。

什么是json文件

JSON(JS对象标记)是一种轻量级的数据交换格式。采用完全独立与编程语言的文本格式存储和表示数据。简洁和清晰的层析结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

JS语言中,一切都是对象。因此,任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊而且常用的两种类型:

  • 对象表示为键值对
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

使用Python解析json文件
使用Python解析JSON数据的基本方法

HTTP/HTTPS协议

  • 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信
  • HTTP的工作方式是客户机与服务器之间的请求-应答协议

get&post

  • get请求一般就直接把请求的参数以?parameter1=value1¶meter2=value2 等这样的形式发送出去了,所以不用带上额外的请求参数,
  • post请求则一般需要带上额外的参数,而不直接把参数在url当中,所以有的时候我们还需要关注参数这一栏。

get:从指定的资源请求数据。 请注意,查询字符串(名称/值对)是在get请求在Url中发送的
post: 向指定的资源提交被处理的数据 请注意,查询字符串(名称/值对)是在post请求的HTTP消息主体中发送的
Python爬虫中的Get和Post方法
HTTP中GET与POST之间的区别

你可能感兴趣的:(爬虫基本知识梳理)