新闻| 文章| 资讯| 行情| 企业| wap手机版| article文章| 首页|会员中心|保存桌面|手机浏览
普通会员

梁山市之柔科技有限公司

企业列表
新闻列表
  • 暂无新闻
推荐企业新闻
联系方式
  • 联系人:李女士
首页 > 新闻中心 > 1.爬虫概述
新闻中心
1.爬虫概述
发布时间:2024-11-11        浏览次数:0        返回列表

学习目标

 

模拟浏览器,发送请求,获取响应

1.爬虫概述

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

  • 原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做
  • 爬虫也只能获取客户端(浏览器)所展示出来的数据

1.1.举例说明(百度–搜索引擎爬虫–根据访问权重排序结果

当我们去百度一个词条的时候,百度这个搜索引擎的爬虫机制,会在互联网中,根据自己的算法收录符合词条的结果,反馈给你,当然,这个结果,会根据百度自身的用户访问统计----(这种统计我们称为访问权重)----进行排序。

所以,我们在研究爬虫的时候,不仅要了解爬虫如何实现,还需要知道一些常见爬虫的算法,如果有必要,我们还需要自己去制定相应的算法,在此,我们仅需要对爬虫的概念有一个基本的了解。

思考:如今,人工智能,大数据离我们越来越近,很多公司在开展相关的业务但是人工智能和大数据中有一个东西非常重要,那就是数据,但是数据从哪里来呢

这是百度的百度指数的一个截图,它把用户在百度上的搜索关键词做了一个统计,然后根据统计结果得出一个流行趋势,之后进行了简单的展示。

像微博上的热搜,就是这么一个原理,类似的指数网站还有很多,比如阿里指数,360指数等等,而这些网站有非常大的用户量,他们能够获取自己用户的数据进行统计和分析

那么,对于一些中小型的公司,没有如此大的用户量的时候,他们该怎么办呢

2.1.数据来源

1.去第三方的公司购买数据(比如:企查查

2.去免费的数据网站下载数据(比如:国家统计局

3.通过爬虫爬取数据

4.人工收集数据(比如:问卷调查

在上面的数据来源中,人工的方式费时费力,效率低下,免费的数据网站上面的数据质量不佳,很多第三方的数据公司他们的数据往往也是爬虫获取的,所以获取数据最有效的途径就是通过爬虫爬取

 
根据被爬取网站的数量不同,可以分为
 
根据是否以获取数据为目的,可以分为
 
根据url地址和对应的页面内容是否改变,数据增量爬虫可以分为
 

如图所示

 

学习目标

 

HTTPS比HTTP更安全,但是性能更低

  • HTTP:超文本传输协议,默认端口号是80
    • 超文本:是指超过文本,不仅限于文本;还包括图片、音频、视频等文件
    • 传输协议:是指使用共用约定的固定格式来传递转换成字符串的超文本内容
  • HTTPS:HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协,默认端口号:443
    • SSL对传输的内容(超文本,也就是请求体或响应体)进行加密
  • 可以打开浏览器访问一个url,右键检查,点击net work,点选一个url,查看http协议的形式
 

以chrome浏览器为例,在网页上点击鼠标右键,检查(或者直接F12,选择network,刷新页面,选择ALL下面的第一个链接,这样就可以看到网页的各种请求信息。

 
 
  • :表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程
  • :表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功
  • :为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源
  • :客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够
  • :服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况

我们在学习web知识的时候就已经学过了状态码的相关知识,我们知道这是服务器给我的相关反馈,我们在学习的时候就被教育说应该将真实情况反馈给客户端,但是在爬虫中,可能该站点的开发人员或者运维人员为了阻止数据被爬虫轻易获取,可能在状态码上做手脚,也就是说返回的状态码并不一定就是真实情况,比如:服务器已经识别出你是爬虫,但是为了让你疏忽大意,所以照样返回状态码200,但是响应体重并没有数据。

所有的状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准

在回顾完http协议后,我们来了解以下浏览器发送http请求的过程

浏览器的请求过程

浏览器获取的内容(elements的内容)包含:url地址对应的响应+js+css+jpg

爬虫会获取:url地址对应的响应

爬虫获取的内容和elements内容不一样,进行数据提取的时候,需要根据url地址对应的响应为准

robots协议:网站通过robots协议,告诉我们搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束。

学习目标

 

 

Preserve log

 

filter过滤

 

观察特定种类的请求

 

但是很多时候我们并不能保证我们需要的请求是什么类型,特别是我们不清楚一个请求是否为ajax请求的时候,直接选择,从前往后观察即可,其中js,css,图片等不去观察即可

不要被浏览器中的一堆请求吓到了,这些请求中除了js,css,图片的请求外,其他的请求并没有多少个

回顾之前人人网的爬虫我们找到了一个登陆接口,那么这个接口从哪里找到的呢

http://www.renren.com

3.1 寻找action对的url地址

可以发现,这个地址就是在登录的form表单中action对应的url地址,回顾前端的知识点,可以发现就是进行表单提交的地址,对应的,提交的数据,仅仅需要

思考

如果action对应的没有url地址的时候可以怎么做

3.2 通过抓包寻找登录的url地址

通过抓包可以发现,在这个url地址和请求体中均有参数,比如和以及加密之后的

这个时候我们可以观察手机版的登录接口,是否也是一样的