浏览器抓取网页( 爬虫接收请求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切换以节省任务执行时间(并发)

  线程池

  参考博客:

  盲驴

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线