爬虫入门基础

爬虫的入门基础

什么是爬虫?

网络爬虫(又被成为网页蜘蛛,网络机器人),就是模拟客户端发起网络请求,接收请求的响应,按照一定的个规则,自动的抓取互联网信息的程序

爬虫的基本流程

分析网站,得到目标url
根据url,发起请求,获取页面的HTML源码
从页面源码中提取数据  a. 提取到目标数据,做数据的筛选和持久化存储 b. 从网页中提取到新的url地址,继续执行第二步
爬虫结束:所有的目标url都提取完,并且得到数据,再也没有其他请求任务
网页的三大特征

每一个网页都有一个唯一的url(统一资源定位符),来进行定位
网页都是通过HTML展示的
所有的网页都是通过HTTP/HTTPS协议来传输的
通用爬虫和聚焦爬虫

通用爬虫:是搜索引擎的重要组成部分  目的:尽可能的将所有的互联网上的网页下载到本地,经过预处理(去噪,分词,去广告),最终将数据存储到本地,做一个镜像备份,形成一个检索系统  缺点:   1.必须遵守robot协议:就是一个规范,告诉搜索引擎,哪些目录下的资源允许爬虫,哪些不允许   2.搜索引擎返回的都是网页,并且返回的90%都是无用的数据   3.不能根据不同用户的需求或者检索结果返回不同的结果   4.通用爬虫对于媒体的文件不能获取
聚焦爬虫:聚焦爬虫是面向主题的爬虫,再爬取数据的过程中对数据进行筛选,往往只会【爬取与需求相关的数据
Robot.txt

Robot协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”,Robot.txt是一个协议,而不是一个命令,他是国际互联网界通行到的规范,大型网站会通过Robot协议来告诉搜索引擎哪些页面可以爬取,哪些不能

参数:

allow:允许爬取
disallow:不允许爬取
七层协议

从上往下 应用层:为用户的应用程序提供网络服务的(http,https,ftp...) 表示层:负责端到端的数据信息可以被另一个主机所理解和识别,并且按照一定的格式将信息传递到会话层 会话层:会话层是管理主机之间的会化进程,负责建立,管理,和终止会话进程 传输层:进行数据传输的(tcp udp) 网络层:路由器 数据链路层:网桥 交换机 物理层:网线 网卡 集线器 中继器

http和https协议

HTTP协议(HyperText Transfer Protocol)中文名叫超文本传输协议: 是用于从网络传送超文本数据到本地浏览器的传送协议

HTTP协议(HyperText Transfer Protocol)中文名叫超文本传输协议: 是用于从网络传送超文本数据到本地浏览器的传送协议

HTTP的端口号为80,HTTPS的端口号为443

HTTPS的安全基础是SSL,因此通过它可以传输的内容都是经过SSL加密的,主要作用是:

建立一个安全有效的信息传送通道,保证数据传送的安全性
确定网站的真实性和有效性
注意:HTTPS比HTTP更安全,但是性能更低

url的基本组成部分

基本格式:schema://host[:port#]/path/?[query-string][#]anchor schema:协议(例如:http, https, ftp) host:服务器的IP地址或者域名 path:访问资源的路径 query-string:参数,发送给http服务器的数据 anchor:锚(跳转到网页的指定锚点位置)

请求的基本流程

from urllib import request

目标url

url = 'http://www.baidu.com'
response = request.urlopen(url,timeout=10)

从response响应结果中获取参数

状态码

code = response.status
print(code)

获取页面源码的二进制数据

b_html = response.read()
print(b_html,len(b_html))

获取响应的相应头部(response headers)

res_headers = response.getheaders()
print(res_headers)

获取响应头中指定参数的值

cokie_data = response.getheader('Set-Cookie')
print(cokie_data)

reason返回一个响应结果的原因

reason = response.reason
print(reason)
get请求和post请求的区别 1.传输数据的大小:对于GET,特定的 浏览器和服务器对URL的长度有限制;对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进 行限制,Apache、IIS都有各自的配置。 2.安全性:POST的安全性比GET的高

请求头的参数 'User-Agent':模拟浏览器进行请求 'Cookie':存储在浏览器里面的,使用 cookie表明用户的身份 'Refere':说明当前的请求是从哪个页面发起的

常用的状态码

200:请求成功

301:永久重定向 302:临时重定向

400:客户端错误 401:未授权 403:服务器拒绝访问 404:页面未找到 405:请求方式不对 408:请求超时

500:服务器错误 503:服务器不可用

bytes类型和str字符串类型的相互转换,bytes和bytearray的区别

1.bytes是Python 3中特有的,Python 2 里不区分bytes和str。 2.str类型使用encode方法转化为bytes类型 bytes类型通过decode转化为str类型 3.bytearray bytearray和bytes不一样的地方在于,bytearray是可变的。

如何发起一个get请求

response = response.get
('www.baidu.com')

正则的基本用法:
. :表示匹配除了换行符之外的任意字符
\ :转义字符
[a-z] : 匹配a-z里面的任意一个字符

\d: 匹配数字 -> [0-9]
\D: 匹配非数字 [^\d]
\s: 匹配空白字符(空格,\n,\t...)
\S: 匹配非空白字符 
\w: 匹配单词字符 [A-Za-z0-9_]
\W: 匹配非单子字符

^:匹配以...开头
$:匹配以....结尾

():分组
|:或

多字符匹配
*:匹配*前面的字符任意次数

  • : 匹配+号前面的字符至少1次
    ?: 匹配?前面的字符0次或1次
    {m}:匹配{m}前面的字符m次
    {m,n}:匹配{m,n}前面的字符m~n次

非贪婪匹配
*?
+?
??
{m,n}?

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

推荐阅读更多精彩内容