Py学习  »  Python

Python爬虫入门详细教程,通俗易懂,看一遍就会!(含实例)

小小的python学习社 • 1 周前 • 25 次点击  
一、什么是爬虫 ?
1、简单介绍爬虫
爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。
网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。
搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。
如果形象地理解,爬虫就如同一只机器蜘蛛,它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。
2、爬虫的分类 网络爬虫一般分为传统爬虫和聚焦爬虫。
聚焦爬虫需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入待抓取的 URL 队列,再根据一定的搜索策略从队列中选择下一步要抓取的网页 URL,并重复上述过程,直到满足系统的一定条件时停止。
另外,所有被爬虫抓取的网页都将会被系统存储、分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
使用防爬虫机制的基本上是企业,我们平时也能见到一些对抗爬虫的经典方式,如图片验证码、滑块验证、封禁 IP 等等。
二、爬虫的工作原理 
1、网络爬虫的基本框架 
对应互联网的所有页面可划分为五部分:      
a. 已下载未过期网页。       
b. 已下载已过期网页:
抓取到的网页实际上是互联网内容的一个镜像文件,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。
c. 待下载网页:
待抓取 URL 队列中的页面。       
d. 可知网页:
既没有被抓取也没有在待抓取 URL 队列中,但可通过对已抓取页面或者待抓取 URL 对应页面进行分析获取到的 URL,认为是可知网页。       
e. 不可知网页:
爬虫无法直接抓取下载的网页。   
待抓取 URL 队列中的 URL 顺序排列涉及到抓取页面的先后次序问题,而决定这些 URL 排列顺序的方法叫做抓取策略。
下面介绍六种常见的抓取策略:       
1. 深度优先遍历策略 ·网络爬虫从起始页开始,由一个链接跟踪到另一个链接,这样不断跟踪链接下去直到处理完这条线路,之后再转入下一个起始页,继续跟踪链接。           
·例如:遍历路径:A-F-GE-H-IBCD。需要注意的是,深度优先可能会找不到目标节点(即进入无限深度分支),因此,深度优先策略不一定能适用于所有情况。       
2. 宽度优先遍历策略 
·宽度优先遍历策略的基本思路是,将新下载网页中发现的链接直接插入待抓取 URL 队列的末尾。       
·例如:遍历路径:第一层:A-B-C-D-E-F,第二层:G-H,第三层:I。广度优先遍历策略会彻底遍历整个网络图,效率较低,但覆盖网页较广。       
3. 反向链接数策略 ·反向链接数是指一个网页被其他网页链接指向的数量。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。而现实是网络环境存在各种广告链接、作弊链接的干扰,使得许多反向链接数反映的结果并不可靠。       
4. PartialPageRank 策略 ·PartialPageRank 策略借鉴了 PageRank 算法的思想:
对于已下载网页,连同待抓取 URL 队列中的 URL,形成网页集合,计算每个页面的 PageRank 值,然后将待抓取 URL 队列中的 URL 按照 PageRank 值的大小进行排列,并按照该顺序抓取页面。
若每次抓取一个页面,就重新计算 PageRank 值,则效率太低。
一种折中方案是:每抓取 K 个页面后,重新计算一次 PageRank 值。
5. OPIC 策略
·此算法其实也是计算页面重要程度。在算法开始前,给所有页面一个相同的初始现金(cash)。当下载了某个页面 P 之后,将 P 的现金分摊给所有从 P 中分析出的链接,并且将 P 的现金清空。       
6. 大站优先策略 
·对于待抓取 URL 队列中的所有网页,根据所属的网站进行分类。待下载页面数多的网站优先下载。

三、熟悉python编程

熟悉Python编程,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
所以Python编程也就是利用Python语言进行计算机编程。

四、正确认识自己到底适不适合Python爬虫

入门Python爬虫最重要,也是最简单的一步,一定要对Python爬虫感兴趣!感兴趣!
作为一名资深的Python爬虫迷,我觉得无论学习任何一件事情,都应该要做到兴趣入门,持之以恒,最后才能真正出师。
在刚开始入门爬虫时,你甚至不需要去学习python的类、多线程、模块之类的略难内容。而是一切按照自己的能力来,基于你学习的目的,工作、爱好、甚至于你想要在后续阶段成长为一名Python爬虫大神。
建议入门一定不要在网上自己瞎碰,因为现在网上的Python爬虫教程虽多,但真正面向于Python零基础的却不多,找好真正有用的优质学习资料,加上专业老师指导,不仅能够学习Python爬虫,还能学习其他Python相关的内容,多掌握一些内容,工作前景也会更大。
零基础入门Python爬虫的要点我就说到这了,学习Python爬虫一定要反复咀嚼语法逻辑,比如列表、字典、字符串、if语句、for循环等最核心的东西都得捻熟于心、于手。
但是,零基础小白怎么开始系统的学习Python?
入门要多久?
这也是我为什么要把这门Python体验课推荐给大家的原因。
因为是非常适合对这个行业什么都不懂的小白
Python已经成为最接近Top 金融机构的语言
掌握Python迫在眉睫!
数字的时代已然来临
趁早学点编程才是王道
无论你是数据小白,还是有基础的数据爱好者
Python零基础实战特训营
都能助你快速入门金融行业必备的Python技能
三更老师亲自上课示范,2天:理论+实操教学+直播教学演示+课后辅导
其实学习的方法是因人而异的,可以根据自己选择的方向来调整。
如果你也对Python这门编程感兴趣的话,欢迎加入我们。(小白也可以参加)
1.关注下方公众号↓↓↓↓
2.点赞+再看
3.在后台发送:“Python” 即可领取资料福利/开通上课权限

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181420
 
25 次点击