浏览器主要是为用户向服务器发起请求,并获取到信息。如果爬虫想要模仿浏览器获取信息的过程,应该怎么实现呢?需要利用哪些工具?
浏览器是通过HTTP协议的请求获取信息的,URL只是标识资源的位置。客户端发送一个HTTP请求到服务器请求消息,包括如下格式:请求行、请求头部、空行、请求数据。
请求行由请求方法字段、URL字段和HTTP协议版本字段组成,通过空格分隔,例如:GET/index.html HTTP/1.1。HTTP协议的请求方法主要有POST和GET:
1、POST向服务器传送数据
POST请求参数在请求体中,消息长度没有限制且以隐式的方式进行发送,通过用来向HTTP服务器提交数据(上传文件等),请求的参数放在Content-Type消息头中,指明该消息的媒体类型和编码。
“POST”请求的参数不在URL中,而在请求体中。
2、GET从服务器获取数据
定义:最常见的一种请求方式,当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的,使用的都是GET方式。
GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含的URL参数来阐述响应内容,即GET请求的参数是URL的一部分:http://www.baidu.com/s?wd=Chinese。
请求的参数是URL的一部分。
举个例子:
我们用百度搜索:https://www.baidu.com/s?wd=关键词
浏览器的url会跳转成:https://www.baidu.com/s?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
在其中我们可以看到在请求部分里,http://www.baidu.com/s?之后出现一个长长的字符串,其中就包含我们要查询的关键词,于是我们可以尝试用默认的Get方式来发送请求。