python爬虫学习第一章

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video { margin: 0; padding: 0; border: 0 }
body { font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 1.6; color: #333; background-color: #fff; padding: 20px; max-width: 960px; margin: 0 auto }
body>*:first-child { margin-top: 0 !important }
body>*:last-child { margin-bottom: 0 !important }
p,blockquote,ul,ol,dl,table,pre { margin: 15px 0 }
h1,h2,h3,h4,h5,h6 { margin: 20px 0 10px; padding: 0; font-weight: bold }
h1 tt,h1 code,h2 tt,h2 code,h3 tt,h3 code,h4 tt,h4 code,h5 tt,h5 code,h6 tt,h6 code { font-size: inherit }
h1 { font-size: 28px; color: #000 }
h2 { font-size: 24px; border-bottom: 1px solid #ccc; color: #000 }
h3 { font-size: 18px }
h4 { font-size: 16px }
h5 { font-size: 14px }
h6 { color: #777; font-size: 14px }
body>h2:first-child,body>h1:first-child,body>h1:first-child+h2,body>h3:first-child,body>h4:first-child,body>h5:first-child,body>h6:first-child { margin-top: 0; padding-top: 0 }
a:first-child h1,a:first-child h2,a:first-child h3,a:first-child h4,a:first-child h5,a:first-child h6 { margin-top: 0; padding-top: 0 }
h1+p,h2+p,h3+p,h4+p,h5+p,h6+p { margin-top: 10px }
a { color: #4183C4; text-decoration: none }
a:hover { text-decoration: underline }
ul,ol { padding-left: 30px }
ul li>:first-child,ol li>:first-child,ul li ul:first-of-type,ol li ol:first-of-type,ul li ol:first-of-type,ol li ul:first-of-type { margin-top: 0px }
ul ul,ul ol,ol ol,ol ul { margin-bottom: 0 }
dl { padding: 0 }
dl dt { font-size: 14px; font-weight: bold; font-style: italic; padding: 0; margin: 15px 0 5px }
dl dt:first-child { padding: 0 }
dl dt>:first-child { margin-top: 0px }
dl dt>:last-child { margin-bottom: 0px }
dl dd { margin: 0 0 15px; padding: 0 15px }
dl dd>:first-child { margin-top: 0px }
dl dd>:last-child { margin-bottom: 0px }
pre,code,tt { font-size: 12px; font-family: Consolas, "Liberation Mono", Courier, monospace }
code,tt { margin: 0 0px; padding: 0px 0px; white-space: nowrap; border: 1px solid #eaeaea; background-color: #f8f8f8 }
pre>code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent }
pre { background-color: #f8f8f8; border: 1px solid #ccc; font-size: 13px; line-height: 19px; overflow: auto; padding: 6px 10px }
pre code,pre tt { background-color: transparent; border: none }
kbd { background-color: #DDDDDD; background-image: linear-gradient(#F1F1F1, #DDDDDD); background-repeat: repeat-x; border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD; border-style: solid; border-width: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 10px; padding: 1px 4px }
blockquote { border-left: 4px solid #DDD; padding: 0 15px; color: #777 }
blockquote>:first-child { margin-top: 0px }
blockquote>:last-child { margin-bottom: 0px }
hr { clear: both; margin: 15px 0; height: 0px; overflow: hidden; border: none; background: transparent; border-bottom: 4px solid #ddd; padding: 0 }
table th { font-weight: bold }
table th,table td { border: 1px solid #ccc; padding: 6px 13px }
table tr { border-top: 1px solid #ccc; background-color: #fff }
table tr:nth-child(2n) { background-color: #f8f8f8 }
img { max-width: 100% }

python网络爬虫的学习

什么是网络爬虫

按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫。

网络爬虫算法

当浏览信息的时候需要按照我们制定的规则进行,这些规则就叫做网络爬虫算法

网络爬虫的组成


网络爬虫由控制节点、爬虫节点、资源库构成。
网络爬虫可以有多个控制节点,每个节点下有多个爬虫节点,控制节点间可以通信,控制节点和各爬虫节点也可以相互通信,属于同一个控制节点的爬虫节点也可以相互通信。
控制节点也称为中央控制器,主要负责根据URL地址分配线程,并调用爬虫节点进行具体的爬行。
爬虫节点会按照相关算法,对网页进行具体的爬行,主要包括下载网页,对网页文本处理,爬行后,会将对应的爬行结果存储在对应的资源库中。

网络爬虫的类型

  1. 通用网络爬虫
    又名全网爬虫,爬行范围非常大,数据海量,其爬取的性能要求非常高,主要应用于大型搜索引擎,有非常高的应用价值
    基本构成:

    • 初始URL集合
    • URL队列
    • 页面爬行模块
    • 页面分析模块
    • 页面数据库
    • 链接过
    • 滤模块
      爬行策略:

    • 深度优先策略
    • 广度优先策略
  2. 聚焦网络爬虫
    也叫主题爬虫,按照预先设定好的主题有选择的进行页面爬去的一种爬虫,目标网页定位与主题相关的页面中,范围比通用网络爬虫小,大大节省了爬虫爬取时所需的带宽资源和服务器资源。聚焦网络爬虫主要应用在特定的信息的爬取中,为某一类特定的人群服务基本构成:
    • 初始URL集合
    • URL队列
    • 页面爬行模块
    • 页面分析模块
    • 页面数据库
    • 链接过滤模块
    • 内容评价模块
    • 链接评价模块爬行策略:
    • 基于内容评价的爬行策略
    • 基于链接评价的爬行策略
    • 基于增强学习的爬行策略
    • 基于语境图的爬行策略
  3. 增量式网络爬虫
    增量式指的是增量式更新,在爬取页面时,只爬取内容发生变化的网页或者新产生的网页,为发生变化的内容不会爬取。增量式爬虫尽可能的保证页面时最新的。
  4. 深层网络爬虫
    在互联网中,网页分为表层页面和深层页面。表层页面就是静态页面,直接可以爬取。而深层页面需要提交表单,才能获取表单后面的页面。就是深层页面
    爬虫的构成:
    • URL列表
    • LVS列表(LVS指的是标签/数值集合,即填充表单的数据源)
    • 爬行控制器
    • 解析器
    • LVS控制器
    • 表单分析器
    • 表单处理器
    • 响应分析器
      表单的填写:
    • 第一种基于领域知识的表单填写,建立一个填写表单的关键词库,需要填写的时候,根据语义分析选择对应关键词填写
    • 基于网页结构分析的表单填写,一般在领域知识有限的情况下使用,根据页面结构进行分析,并自动的进行表单填写

聚焦爬虫详解


将初始的URL集合传递给URL队列,页面爬行模块会从URL队列中读取第一批URL列表,然后根据这些URL地址从互联网中进行相应的页面爬取。爬取后,将爬取到的内容传到页面数据库中存储,同时,在爬行过程中,会爬取新的URL,此时,需要根据我们所定的主题使用链接过滤模块过滤掉无关链接,再将剩下来的URL链接根据主题使用链接评价模块和内容评价模块进行优先级的排序。完成后,将新的URL地址传递到URL队列中,供页面爬行的模块使用。另一方面,将页面爬取并存放到页面数据库后,需要根据主题使用页面分析模块对爬取到的页面进行页面分析处理,并根据处理结果建立索引数据库,用户检索对应信息时,可以从索引数据库中进行相应的检索,并得到对应的结果。

原文地址:https://www.cnblogs.com/dcotorbool/p/8278998.html

时间: 2024-11-05 23:20:20

python爬虫学习第一章的相关文章

Python爬虫学习==>第一章:Python3+Pip环境配置

前置操作 软件名:anaconda  版本:Anaconda3-5.0.1-Windows-x86_64清华镜像  下载链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 软件名:Pycharm  版本:pycharm-professional-2017.3.2  下载地址:百度即可 软件名:python    版本:3.6      下载地址:python.org conda安装 Step 1: anaconda安装及注意事项 默

Python爬虫学习==>第九章:正则表达式基础

学习目的: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特点字符.及这些特点字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 正式步骤 Step1:常用匹配模式 Step2:最常规的匹配 import re testString = 'I have 4Learned the python years' print(len(testString)) result = re.match('^I\s\w{4}\s\d\w{7}.*years$',t

python爬虫学习第二章

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

Python爬虫学习:三、爬虫的基本操作流程

本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将数据或信息存入数据库中: 3.数据展示,即在Web端进行显示,并有自己的分析说明. 这次我先介绍第一个功能中所需要实现的基本操作: 爬虫的基本操作:      表示必须步骤           表示可选步骤 导入爬虫所需要的库(如:urllib.urllib2.BeautifulSoup.Scrap

《Python CookBook2》 第一章 文本 - 每次处理一个字符 && 字符和字符值之间的转换

文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将数据以某种方式转化为另一种相似的形式,数据本身发生了改变:③生成全新的数据 每次处理一个字符: 任务用每次处理一个字符的方式处理字符串. 解决方案可以创建一个列表,列表的子项是字符串的字符.代码如下: >>> thelist = list('thestring') >>>

Python爬虫学习路线,强烈建议收藏这十一条

(一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量.数据结构.语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Python 简介 | 菜鸟教程 2.看完基础后,就是做一些小项目巩固基础,比方说:做一个终端计算器,如果实在找不到什么练手项目,可以在 Codecademy - learn to code, interactively, for free 上面进行练习. 如果时间充裕的

《Python CookBook2》 第一章 文本 - 测试一个对象是否是类字符串 && 字符串对齐

测试一个对象是否是类字符串 任务 有时候需要测试一个对象,尤其是当你在写一个函数或者方法的时候,经常需要测试传入的参数是否是一个字符串. 解决方案 利用内建的isinstance 和basestring 来简单快速地查询某个对象是否是字符串或者是Unicode 对象方法,如下: 代码: >>> def isAString(aaa): return isinstance(aaa,basestring) 运行结果: >>> isAString('aaa') True 字符串

Python爬虫学习系列教程

Python爬虫学习系列教程 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫感兴趣的童鞋有帮助,如果有机会期待与大家的交流. Python版本:2.7 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库

Python爬虫学习:四、headers和data的获取

之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.com/ 打开网页,按下F12键,如下图所示: 点击下方标签中的Network,如下: 之后再点击下图所示位置: 找到红色下划线位置所示的标签并点击,在右边的显示内容中可以查看到所需要的headers信息. 一般只需要添加User-Agent这一信息就足够了,headers同样也是字典类型: user