文章目录

  • 一、爬虫基本认知
  • 二、爬虫之路
    • 初级爬虫工程师
    • 中级爬虫工程师
    • 高级爬虫工程师

一、爬虫基本认知

1、爬虫的简单定义
网络爬虫,又称为网页蜘蛛、蚂蚁、蠕虫、模拟程序,在FOAF社区中,被称为二王爷追逐者。是一种按照一定的规则,自动抓取万维网信息的程序或者脚本。简单来说,网络爬虫就是使用事先写好的程序去抓取网络上所需要的数据。

2、通用网络爬虫
搜索引擎的第一步就是爬虫,但是搜索引擎中的爬虫是一种广泛获取各种网页信息的程序,除了HTML文件外,搜索引擎通常还会抓取和索引文字为基础的多种文件类型,如TXT,WORD,PDF等。但是对于图片, 视频,等非文字的内容则一般不会处理,并且对于脚本和一些网页中的程序也不会处理的。

3、聚焦网络爬虫(主要学习方向)
针对某一特定领域的数据进行抓取的程序。比如旅游网站,金融网站,招聘网站等等;特定领域的聚集爬虫会使用各种技术去处理我们需要的信息,所以对于网站中动态的那些程序,脚本仍会执行,以保证确定能抓取到网站中的数据。

4、爬虫的用途

  • 解决冷启动问题:对于很多社交类的网站和应用程序,冷启动很困难。要想留住新注册的用户,需要先注入一批假用户,已构造社区的氛围。通常这些假的用户可以通过网络爬虫从微博或其他APP中抓取而来。
  • 搜索引擎的根基:做搜索引擎需要数据来源,就是通过爬虫程序来实现的
  • 建立知识图谱:这是在机器学习方面的用途,爬虫可以帮助建立起机器学习的训练集
  • 数据分析:制作各种商品的比价,进行数据分析、趋势分析、走势预测

5、爬虫的合法性问题
1)目前还处于不明确的蛮阶段,“哪些行为不允许”这种基本秩序还处于建设中。
2)至少目前来看,如果抓取的数据为个人所用,则不存在问题;如果数据用于转载,那么抓取数据的类型就很重要了
3)一般来说,当抓取的数据是实现生活中的真实数据(比如,营业地址,电话清单)时,是允许转载的。但如果是原创数据(文章、意见、评论),通常就会受到版权限制,而不能转载。
4)不管怎么样,作为一个访客,应当约束自己的抓取行为,这就是说要求下.载请求的速度需要限定在一个合理值之内,并且还需要设定一个专属的用户代理来标识自己。

6、robots.txt文档
就是一个君子协议,记录了一些网站允许其他网站爬取的范围(allow允许,disallow不允许),比如: https://www.baidu.com/robots.txt和 https://www.douban.com/robots.txt

7、网站地图sitemap
sitemap是一个网站所有链接的容器,是一个xml文档。很多网站的连接层次比较深,很难抓取到,网站地图可以方便搜索引擎蜘蛛抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名为sitemap,为搜索引擎蜘蛛指路,增加网站重要内容页面的收录。网站地图就是根据网站的结构、框架、内容,生成的导航网页文件。大多数人都知道网站地图对于提高用户体验有好处:它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。
比如: https://www.mafengwo.cn/sitemapIndex.xml和 http://www.170hi.com/sitemap.xml

8、深度优先与广度优先
1)深度优先策略

2)广度优先策略

9、HTTP与HTTPS协议

  • URL:统一资源定位符,是用于完整地描述Internet上网页和其他资源地址的一种标识方法
  • HTTP协议:无连接(每次连接只处理一个请求),无状态(每次的传输都是独立的)
  • HTTPS协议:用于Web的安全传输协议,在传输层对网络连接进行加密
  • HTTP的缺省端口号为80,HTTPS的缺省端口号为443
  • GET请求:从服务器获取信息,传输给服务器的数据过程不够安全
  • POST请求:传输数据的过程是安全的,传输数据的大小理论上没有限制
  • HTTP响应的状态码:
    200:成功
    300:跳转
    400,500:错误
    404:页面未找到

二、爬虫之路

初级爬虫工程师

1、Web 前端的知识: HTML,CSS,JavaScript,DOM,DHTML,Ajax,jQuery,json等。
2、正则表达式,能提取正常一般网页中想要的信息,比如某些特殊的文字,链接信息,知道什么是懒惰,什么是贪婪型的正则。
3、(重点)会使用re,BeautifulSoup,XPath等获取一些DOM结构中的节点信息。
4、(算法)知道什么是深度优先,广度优先的抓取算法,及实践中的使用规则。
5、 能分析简单网站的结构,会使用urllib、requests 库进行简单的数据抓取。

中级爬虫工程师

1、了解什么是Hash,会使用简单的MD5、SHA1等算法对数据进行Hash以便存储。
2、熟悉HTTP、HTTPS(更安全,使用了应用层加密)协议的基础知识,了解GET、POST方法,了解HTTP头中的信息,包括返回状态码,编码,userlagent, cookie, session等。
3、能设置User-Agent进行数据爬取,设置代理等。
4、知道什么是Request、什么是Response,会使用Fiddle, Wireshark等工具抓取及分析简单的网络数据包;对于动态爬虫,要学会分析Ajax请求,模拟制造Post数据包请求,抓取客户端session等信息,对于一些简单的网站,能够通过模拟数据包进行自动登录。
5、对于比较难搞定的网站,学会使用浏览器+selenium抓取一些动态网页信息。
6、并发下载,通过并行下载加速数据抓取,多线程的使用。

高级爬虫工程师

1、能使用Tesseract, 百度AI、HQG+SVM、CNN等库进行验证码识别。
2、能使用数据挖掘的技术,分类算法等避兔死链等。
3、会使用常用的数据库进行数据存储,查询,如Mongodb, Redis(大数据量的缓存)等;下载缓存,学习如何通过缓存避免重复下载的问题; Bloom Filter 的使用。
4、能使用机器学习的技术动态调整爬虫的爬取策略,从而避免被禁IP封号等。
5、能使用一些开源框架Scrapy、Celery等分布式爬虫,能部署掌控分布式爬虫进行大规模的数据抓取。

Python之网络爬虫(爬虫基本认知、网络爬虫之路)相关推荐

  1. python网络爬虫基础知识_Python网络爬虫基础知识

    一.网络爬虫 网络爬虫又被称为网络蜘蛛,我们可以把互联网想象成一个蜘蛛网,每一个网站都是一个节点,我们可以使用一只蜘蛛去各个网页抓取我们想要 的资源.举一个最简单的例子,你在百度和谷歌中输入'Pyth ...

  2. 《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第3章 初识网 ...

  3. python网络爬虫资源库名_Python网络爬虫

    网友NO.524767 Python网络爬虫与信息提取(实例讲解) 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.B ...

  4. python网络爬虫的特点_Python网络爬虫(一)- 入门基础

    目录: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程 ...

  5. Python网络爬虫(一):爬虫基础

    Python网络爬虫(一)爬虫基础 一.爬虫基础 1.HTTP基本原理 1.1URI和URL URI,全称:Uniform Resource Identifier,即统一资源标志符:URL,全称:Un ...

  6. 初识Python爬虫----如何爬取网络数据

    一.什么是网络爬虫 即爬取网络数据的虫子,也就是Python程序. 二.爬虫的实质是什么? 模拟浏览器的工作原理,向服务器发送请求数据. 三.浏览器的工作原理是什么? 浏览器还可以起到翻译数据的作用. ...

  7. (一)python网络爬虫(理论+实战)——爬虫的初步认识

    小白都能学会的python网络爬虫专栏: https://blog.csdn.net/c1007857613/category_12127982.html 序言 本人从事爬虫相关工作已8年以上,从一个 ...

  8. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...

  9. Python爬虫之爬取网络小说并在本地保存为txt文件

    Python爬虫之爬取网络小说并在本地保存为txt文件 注:本文使用软件为Sublime Text,浏览器为谷歌浏览器 (新手小白第一次写,写得不好请见谅) **1.**首先找到想要爬取的小说章节目录 ...

  10. 解析python网络爬虫pdf 黑马程序员_正版 解析Python网络爬虫 核心技术 Scrapy框架 分布式爬虫 黑马程序员 Python应用编程丛书 中国铁道出版社...

    商品参数 书名:Python应用编程丛书:解析Python网络爬虫:核心技术.Scrapy框架.分布式爬虫 定价:52.00元 作者:[中国]黑马程序员 出版社:中国铁道出版社 出版日期:2018-0 ...

最新文章

  1. golang源码分析-调度概述
  2. 这款笔记本写代码真爽,包邮送一台!
  3. 运维管理工具+chef+puppet+ansible+SaltStack
  4. Vue+Video.js播放m3u8视频流(海康威视摄像头+RTMP服务+FFmpeg)
  5. 用qss 来控制qlabel显示字体的位置_Word表格总填不好,这些技巧轻松来拯救
  6. erlang开发环境配置
  7. JEECG中datagrid方法自定义查询条件
  8. 使用jvisualvm通过JMX的方式监控远程JVM运行状况
  9. swwht(canvas).demo
  10. MySql数据库级别MD5加密java MD5加密解密工具包
  11. 快速傅里叶变换(蝶形算法)
  12. 所有人都能看懂的华为交换机vlan配置
  13. 什么是判断力?如何提高判断力?@HR人才测评
  14. Volumes 数据卷管理
  15. PS学习笔记----图层锁定
  16. Unity之android Drawable数据传递以APPIcon为例
  17. 白先生教学(阎振俗老先生演出不完全剧本台词) ZT
  18. Vue关于$on和$emit的理解
  19. Android 增量更新实现
  20. Microsoft Word 2019 for mac(word mac)

热门文章

  1. arch linux添加用户,Users and groups (简体中文)
  2. android 插入gif,android – Gboard:在EditText上启用GIF插入
  3. 防盗链python_python一行代码,实现网页视频下载
  4. 查看linux进程的设备io,Linux下查看进程IO工具iopp
  5. 快捷配置mysql_windows下的mysql的快捷安装方法和简单配置
  6. 主板有几种尺寸_工控机主板哪个牌子好?2019工控主板十大品牌排行榜
  7. pg库和mysql的优缺点_MySQL与PostgreSQL的实际性能比较
  8. mha数据备份_MHA学习笔记
  9. oracle number长度转换,Oracle Number型数值存储与转换的实现详解
  10. glance查看进程内存使用过大问题