PYTHON——爬虫笔记(一)

一、爬虫的定义:

程序或者脚本---》自动的爬取万维网的数据的程序或者脚本。

二、爬虫可以解决的问题:

(1)解决冷启动问题。

(2)搜索引擎的根基。---通用爬虫。

(3)帮助机器学习建立知识图谱。

(4)制作各种比价软件。

三、爬虫工程师的进阶之路:

初级爬虫工程师

1.web 前端的知识: HTML、CSS、JavaSc1ipt、 DOM、 DHTML 、Ajax、jQuery、json 等;

2、正则表达式, 能提取正常一般网页中想要的信息,比如某些特殊的文字, 链接信息, 知道什么是懒惰, 什么是贪婪型的正则;

3、会使用 XPath 等获取一些DOM 结构中的节点信息;

4、知道什么是深度优先, 广度优先的抓取算法, 及实践中的使用规则;

5、能分析简单网站的结构, 会使用urllib或requests 库进行简单的数据抓取。

中级爬虫工程师:

1、了解什么事HASH,会简单地使用MD5,SHA1等算法对数据进行HASH一遍存储

2、熟悉HTTP,HTTPS协议的基础知识,了解GET,POST方法,了解HTTP头中的信息,包括返回状态码,编码,user-agent,cookie,session等

3、能设置user-agent进行数据爬取,设置代理等

4、知道什么事Request,什么事response,会使用Fiddler等工具抓取及分析简单地网络数据包;对于动态爬虫,要学会分析ajax请求,模拟制造post数据包请求,抓取客户端session等信息,对于一些简单的网站,能够通过模拟数据包进行自动登录。

5、对于一些难搞定的网站学会使用phantomjs+selenium抓取一些动态网页信息

6、并发下载,通过并行下载加速数据爬取;多线程的使用。

高级爬虫工程师:

1、能够使用Tesseract,百度AI,HOG+SVM,CNN等库进行验证码识别。

2、能使用数据挖掘技术,分类算法等避免死链。

3、会使用常用的数据库进行数据存储,查询。比如mongoDB,redis;学习如何通过缓存避免重复下载的问题。

4、能够使用机器学习的技术动态调整爬虫的爬取策略,从而避免被禁IP封禁等。

5、能使用一些开源框架scrapy,scrapy-redis等分布式爬虫,能部署掌控分布式爬虫进行大规模数据爬取。

四、搜索引擎:

1、什么是搜索引擎:

搜索引擎通过特定算法,从互联网上获取网页信息,将其保存到本地,为用户提供检索服务的一种程序。

2、搜索引擎的组成:

搜索引擎主要是是由通用爬虫组成的。

(1)通用爬虫:将互联网上的网页信息【整体】爬取下来的爬虫程序。

(2)搜索引擎的工作步骤:

1、抓取网页

2、数据存储

3、预处理

提取文字

中文分词

消除噪音

。。。

4、设置网站排名(访问量),为用户提供检索服务。

(3)为什么搜索引擎可以爬取所有的网页?---搜索引擎的通用是如何来爬取所有网页的。

一个网页就是一个url,这个问题其实在问,【url的获取来源】。

url的获取来源:

1、新网站会主动提交网址给搜索引擎。

2、网页中的一些外链,这些url全部都会加入到通用爬虫的爬取队列。

3、搜索引擎和dns解析服务商合作,如果有新网站注册,搜索引擎就可拿到网址。

3、通用爬虫的缺陷:

(1)通用爬虫是爬取整个网页,但是网页中90%的内容基本是没用。

(2)不能满足不同行业,不同人员的不同需求。

(3)只能获取文字,不能获取音频,视频,文档等信息。

(4)只能通过关键字查询,无法通过语义查询。

4、聚焦爬虫:

在实施网页抓取的过程中,【会对内容进行筛选】,尽量保证只抓取与【需求相关】的信息的爬虫程序。

五、robots协议:

定义:网络爬虫排除标准

作用:告诉搜索引擎那些可以爬那些不能爬。

六、http协议:

1、什么是http协议:

是一种规范——————>约束发布和接受html的规范。

2、http和https

http:超文本传输协议。

https:安全版的http协议。---ssl---

对称加密---密钥

非对称---私钥+公钥

3、数字签证

https:443

http:80

  Upgrade-Insecure-Requests: 1:可以将http升级成https请求。

4、http的特点:

(1)应用层协议。

(2)无连接:http每次发送请求和响应的过程都是独立。

在http 1.0以后,有请求头:connection:keep-alive:客户端和服务建立长连接。

(3)无状态:http协议不记录状态。

cookie和session做到请求状态的记录。

cookie是在客户端保存,session是在服务器保存。

5、url:统一资源定位符。

(1)主要作用:用来定位互联网上的任意资源的位置。

(2)为什么url可以定位任意资源?

组成:https://www.baidu.com/index.html?username=123&password=abc#top

scheme:协议---https

netloc:网络地址:ip:port---www.baidu.com

通过ip定位电脑,通过port定位应用。

192.168.92.10:

代理ip:ip:port

path:资源路径。---index.html

query:请求参数:---?后面的内容username=123&password=abc

fragment:锚点----top

原因:url包含netloc可以定位电脑,path定位资源,这样就可以找到任意在互联网上的信息。

(3)特殊符号:

?:后面就是请求参数

&:连接请求参数

#:锚点----如果url中有锚点,在爬虫程序中尽量去除。

6、 http的工作过程:

(1)地址解析:

将url的所有组成部分分别解析出来。

(2)封装http请求数据包。

将第一步解析出来的信息进行装包。---http数据包。

(3)封装tcp数据包,通过三次握手建立tcp。

(4)客户端发送请求

(5)服务发送响应

(6)关闭tcp连接。

7、当我们在浏览器输入一个url,浏览器加载出这个页面,中间做了哪些事?

(1)客户端解析url,封装数据包,建立连接,发送请求。

(2)服务器返回url对应资源文件给客户端,比如:index.html。

(3)客户端检查index.html是否有静态资源(引用外部文件),比如js,css,图片。有的话再分别发送请求,来获取这些静态资源。

(4)客户端获取所有静态,通过html语法,完全将index.html页面显示出来。

8、 http的请求方法:

get请求:get(获取)-->获取服务器的指定资源--->涉及到筛选一些信息--->请求参数:主要拼接在url中。--->不安全(别人可以通过url获取信息)--->请求参数的大小受限。

post请求:post(邮递)--->向服务器传递数据--->请求数据是方法在请求实体中的--->安全--->大小不受限。

9、客户端请求

(1)组成:请求行、请求头、空行、请求数据(实体)

请求头:请求方法;host地址,http协议版本。

(2)请求头:

user-agent:客户端标识。

accept:允许传入的文件类型。

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3

Referer:标识产生请求的网页来自于哪个网页。

防盗链

cookie:cookie信息。---现在很多网站,必须封装cookie才给数据。

post请求重要的请求头:

content-type:post请求的数据类型

content-length:post请求数据的长度。

ajax请求必须封装的头:

x-requested-with:xmlhttprequest

10、服务器响应:

(1)组成:状态行、响应头、空行、响应正文。

(2)响应头:

Content-Type:text/html;charset=UTF-8

(3)状态码(面试常考):

1XX:表示服务器成功接收部分请求,还需要发剩余请求才能处理整个过程。(处理了一半)

2XX:标识服务器成功接收请求并处理完整个过程。(成功)

200成功

3XX:为了完成请求,客户端需要进一步细化请求。

302:重定向

304:使用缓存资源

4XX:客户端请求错误。(url写错了)

404:服务器无法找到请求内容。

403:服务器拒绝访问,权限不够。

5XX:服务器错误。

502:服务器错误

500:请求未完成,服务器遇到不可知问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 爬虫概述 1. 目录清单 爬虫简介 通用爬虫和聚焦爬虫 网络请求那些事儿 网络数据抓包分析 2. 章节内容 2.1...
    小皇帝s阅读 688评论 0 1
  • 33款可用来抓数据的开源爬虫软件工具 要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即...
    visiontry阅读 7,317评论 1 99
  • 通过第一课的学习,我学到了以下内容: 1.如果你找到了通往新世界的钥匙,请画一张地图,让别人也能进来2.错误的思维...
    牧歌爸爸育儿阅读 224评论 0 2
  • 考研真是扒层皮 天天都在上课 天气也好 困的站着都快要睡着 今天是愚人节 收到礼物第一反应 就是what!! 恩就...
    柚柚99阅读 222评论 0 1
  • 2019年8月5号 星期一 天气:小雨 亲子日记第5篇 朋友在这里玩到现在刚走,赶紧把今天的日记写了,一...
    8307233c4dee阅读 178评论 0 0