spider 01爬虫原理和数据抓取

爬虫day01

关于python网络爬虫,我们需要学习的有:
1:python基础语法学习(基础知识)
2:对HTML页面的内容抓取(数据抓取)
3:对HTML的数据提取(数据提取)
4:Scrapy框架以及scrapy-redis分布式策略(第三方框架)
5:爬虫(spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-spider)之间的斗争

爬虫定义:

就是编写代码模拟客户端发送网络请求,接收请求响应,按照一定的规则,自动、机械、系统的抓取互联网指定信息的程序。只要是浏览器可以做的事情,原则上爬虫都可以做(即模拟浏览器的操作)。就是快速的获取网络上所有自己想要获取的指定方面的数据,然后对数据进行清洗、维护和加以利用。

为什么学习爬虫?

1:可以直接将爬取出来的数据进行呈现,比如放在搭好框架但是没有数据的app或者网页上。eg:如今日头条就是靠爬取数据,直接把数据导入自己的网站和app发家的。
2:可以对数据进一步处理,进行数据分析,建立相关模型,对于发展的方向和问题等给出合理的建议。
3:可以将数据拿来做深度学习,用于AI领域。

爬虫的更多用途:
1:12306抢票,图书馆抢座
2:网站上的投票,微信点赞
3:短信轰炸(很多网站的新用户注册时都会接收到验证码来进行验证。可以写代码模拟网站请求,那么可以选择成千上百的网站不停地给指定手机号发送验证码,导致其功能无法正常使用)

–字符串如何转换成二进制文件,在网络上进行传输
str.encode("")加密成bytes,在网络间进行通讯,然后bytes.decode("")解密成str文件。其中前后的加密和解密方式一致才可以保证整个过程的顺利进行

–http和https的概念

http即超文本传输协议
http默认端口号是80

https=http+SSL(安全套接字层) --》可以理解为多了一个编码和解码的过程
https默认端口号是443
https安全性更高,但是性能低(多了编码和解码的过程,大大降低了性能)

爬虫的流程

  • url—>发送请求,获取响应—>提取数据---->保存
    -发送请求,获取响应—>提取url

url的形式
总的形式:scheme://host[:port#]/path/…/[?query-string][#anchor]

scheme:协议(例如:http,https,ftp)
host:服务器的ip地址或者域名
port:服务器的端口(如果是走协议默认端口,80 or 443)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的指定锚点位置)

例子:
http://localhost:4000/file/part01/1.2html
http://item.jd.com/11936238.html#product-detail

锚点anchor不会影响网页的响应,可以删除。

http常见请求头:
1:host(主机和端口号)
2:connection(链接类型 长链接或者短链接)
3:upgrade-Insecure-Request(升级为HTTPS请求)
4:User-agent(浏览器名称)
5:Accept(传输文件类型)
6:Referer(页面跳转处)
7:Accept-Encoding(文件编解码格式)
8:Cookie

常见的请求方法
GET
POST
问题:GET方法和POST方法有什么区别呢?
区别1:get是从服务器上获取数据,post是向服务器传送数据
2:get传送数据量较小,post传送数据量较大
3:get安全性较低,post安全性较高
get把参数包含在url中,post通过request body 传递参数。

状态响应码(status code)
200:成功
404:not found
500:服务器内部错误
302:临时转移至新的url
307:临时转移至新的url

爬虫的分类
1:通用爬虫:通常指搜索引擎的爬虫.
2:聚焦爬虫:针对特定网站的爬虫

通用搜索引擎工作原理:

通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富。

第一步:抓取网页
在这里插入图片描述
第二步:数据存储
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。

第三步:预处理
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。

提取文字
中文分词
消除噪音(比如版权声明文字、导航条、广告等……)
索引处理
链接关系计算
特殊文件处理

除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。

但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。

第四步:提供检索服务,网站排名
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。
在这里插入图片描述
今后要学习的较多的主要是聚焦网络爬虫。
在这里插入图片描述

浏览器发送HTTP请求的过程在这里插入图片描述

爬虫要根据当前url地址对应的response响应为准,当前url地址的elements的内容和url的response响应不一样。(因为elements里面含有js内容,会调整页面的内容)。

浏览器渲染出来的页面和爬虫请求的页面并不一样。

那么页面上的数据在哪里?

1当前url地址对应的响应中
2其他的url地址对应的响应中
比如ajax生成的请求中
3js生成的
部分数据在响应中
全部通过js生成的

猜你喜欢

转载自blog.csdn.net/qq_35264080/article/details/84658779
今日推荐