浏览器抓取网页( 爬虫接收请求3、请求头注意携带4、响应Response)
优采云 发布时间: 2022-03-30 14:15浏览器抓取网页(
爬虫接收请求3、请求头注意携带4、响应Response)
请求:用户通过浏览器(socket client)将自己的信息发送到服务器(socket server)
响应:服务器接收到请求,分析用户发送的请求信息,然后返回数据(返回的数据可能收录其他链接,如:图片、js、css等)
ps:浏览器收到Response后会解析其内容展示给用户,爬虫模拟浏览器发送请求再接收Response后提取有用数据。
四、 请求
1、请求方法:
常见的请求方式:GET / POST
2、请求的网址
url 全局统一资源定位器,用于定义互联网上唯一的资源 例如:图片、文件、视频都可以通过url唯一标识
网址编码
图片
图像将被编码(见示例代码)
一个网页的加载过程是:
加载网页通常会先加载文档,
在解析document文档时,如果遇到链接,则对该超链接发起图片下载请求
3、请求头
User-agent:如果请求头中没有user-agent客户端配置,服务器可能会将你视为非法用户主机;
cookies:cookies用于存储登录信息
注意:一般爬虫会添加请求头
请求头中需要注意的参数:
(1)Referrer:访问源从哪里来(有些大的网站,会使用Referrer做防盗链策略;所有爬虫也要注意模拟)
(2)User-Agent: 访问的浏览器(要添加,否则将被视为爬虫)
(3)cookie: 请注意请求头
4、请求正文
请求体
如果是get方式,请求体没有内容 (get请求的请求体放在 url后面参数中,直接能看到)
如果是post方式,请求体是format data
ps:
1、登录窗口,文件上传等,信息都会被附加到请求体内
2、登录,输入错误的用户名密码,然后提交,就可以看到post,正确登录后页面通常会跳转,无法捕捉到post
五、 响应
1、响应状态码
200:代表成功
301:代表跳转
404: 文件不存在
403:未经授权的访问
502:服务器错误
2、响应头
响应头中需要注意的参数:
(1)Set-Cookie:BDSVRTM=0; path=/: 可能有多个,告诉浏览器保存cookie
(2)Content-Location:服务器响应头收录Location并返回浏览器后,浏览器会重新访问另一个页面
3、预览是网页的源代码
JSO 数据
如网页html、图片
二进制数据等
六、总结
1、爬虫流程总结:
爬取--->解析--->存储
2、爬虫所需工具:
请求库:requests、selenium(可以驱动浏览器解析和渲染CSS和JS,但有性能劣势(会加载有用和无用的网页);)
解析库:regular、beautifulsoup、pyquery
存储库:文件、MySQL、Mongodb、Redis
3、爬校花网
最后,让我们给你一些好处
基础版:
查看代码
功能包版本
查看代码
并发版(如果一共需要爬30个视频,开30个线程来做,耗时是最慢的部分)
查看代码
涉及知识:多线程和多处理
计算密集型任务:使用多进程,因为Python有GIL,多进程可以利用CPU多核;
IO密集型任务:使用多线程,做IO切换以节省任务执行时间(并发)
线程池
参考博客:
盲驴