本专栏会对爬虫进行从0开始的讲解,每一步都十分的细致,如果你感兴趣希望多多点赞收藏关注支持
简介:文章对爬虫展开多方面剖析。起始于爬虫的基本概念,即依特定规则在网络抓取信息的程序或脚本,在搜索引擎信息提取上作用显著。阐述其于大数据背景下可助力获取并处理分析数据的价值。着重说明避免违法的关键,涉及遵循网站 robots.txt 文件规定、合理控制访问频率、杜绝恶意篡改网站信息以及尊重个人隐私与知识产权等方面。详细解读通用爬虫,涵盖 URL 构成要素与搜索引擎获取新网站 URL 的途径等。同时深入介绍聚焦爬虫,包含 Chrome 浏览器开发者工具 F12 的运用、HTTP 超文本传输协议的 GET 和 POST 操作以及 HTTP 协议字段解析,如 Cookie、user-agent 等重要组成部分与常见状态码含义等,为读者清晰展现爬虫的全貌。
1爬虫的基本介绍
1.1什么是爬虫
爬虫是一种按一定规则在互联网上抓取信息的程序或脚本。他可以自动的访问互联网上的网页,搜索引擎(百度 谷歌)使用大量的爬虫提取网页的关键词,这样当用户在搜索引擎中输入关键词时,就能快速地找到相关的网页。
1.2爬虫的价值与意义
常说现在是大数据时代,这些数据如果市场上没有,或者不愿意购买,可以选择自己使用爬虫去获取需要的数据,进行处理和分析
1.3避免违法
如果不想因为爬虫触犯法律:
(第一点):它存放在网站根目录下的 robots.txt 文件中,用于告诉爬虫哪些页面可以抓取,哪些不可以。比如在下图百度的网址后+robots.txt就可以找到那些是不允许的了。
(第二点):控制访问频率避免对服务器带来较大负担
(第三点):不要恶意篡改网站信息,会涉及到破坏计算机信息系统罪
(第四点):尊重个人隐私,尊重知识产权
1.4通用爬虫
他是搜索引擎的重要组成部分,从互联网采集信息,为建立索引提供支持,决定了搜索殷勤的内容是否丰富,即时。
1.4.1什么是URL
URL是互联网资源的门牌号,由多个部分组成:
(第一部分--协议):比如我用一台手机,打开一个网页。我这个手机需要的是页面的信息,所以我的手机是被服务的客户叫做客户端,给予信息的是提供服务的叫做服务端或者服务器。他们要遵循一种特定的规则去实现信息的传输,常见协议有https (超文本传输安全协议)
http(超文本 传输协议)
ftp(文件传输协议)
(第二部分是IP地址)比如www.baidu.com就是ip地址
(第三部分是端口)一般默认http默认端口是80,会被省略。
(第四部分)path访问资源的路径
(第五部分参数)我们通过百度搜索python,观察一下地址栏的变化
可以看到参数wd = python说明这是搜索的参数
搜索引擎获取新网站URL的三种方式:
(第一种)新网站主动向搜索引擎提交网址
(第二种)在其他网站上设置新网站外链
(第三种)和dns解析服务商合作
1.5聚焦爬虫
他是针对于特定网站或平台进行某一类数据爬取
1.5.1 Chromne浏览器开发者工具F12
按F12或者右键检查。比如我们打开百度网站,打开开发者工具
刷新网站找到www.baidu.com的抓包:
注重强调要对: 保留日志/preserve log部分打钩,他的作用是比如我要完成一次登录,那么他可以保证登录的请求不丢失。登录完以后还可以已通过开发者工具看到自己提交的登录请求,如果不打钩,他会自动丢失。
那么为什么不能丢失呢?因为我们在使用爬虫的时候会遇到登录问题,我们需要抓登录需要的包,将爬虫模拟成真人登录,才能爬取我们需要的信息。
1.5.2 HTTP 超文本传输协议
比如手机打开一个百度浏览器他会自动输入百度的网址,通过URL地址对存储百度页面的服务器发送请求GET /POST,而服务器给予响应。
GET:比如需要一个网页页面 ,就是GET
POST:比如需要登录输入用户名密码就是POST
我们可以通过抓包看GET,打开百度首页开发者工具刷新:
我们可以看到一个GET请求,他的状态码是200,目前只需要知道状态码都是三位数,2开头的代表访问正常,4开头代表访问异常,比如常见的404,406。我们会单独将状态码这个知识点,目前留个印象就好。
1.5.3 HTTP协议字段解析
还是打开百度首页,打开开发者工具抓包并刷新:
可以看到很多信息,我把常用信息进行讲解,这三个代表着 URL地址 方法 以及 状态码。
鼠标滚轮往下滚可以看到:
Cookie的作用很重要,比如你在一个购物网站登录了,服务器怎么识别出来你。他检测方法之一就是判断cookie是否正确。
user-agent也很重要,他代表着我们是通过什么浏览器,什么系统去访问的。服务器一看到他就知道是真人访问。爬虫对于服务器来说是压力。将心比心,你们开发一个网站是不是更乐意把网站提供给真人,因为信息的传播会带来价值,给爬虫又不会给你创造价值。所以服务器可以通过多种方式判断爬虫从而降低爬虫打来的压力。作为爬虫,我们要做的就是模仿成真人的访问,把自己做的正常一点
对于相应状态码要单独讲解:
1开头 代表成功接收部分请求
2开头代表成功
3开头代表需要客户需要细化请求
4开头代表有错误 :404无法找到403拒绝访问权限不够
5开头 服务器端遇到不可预知的错误