陈贵来cgl

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.注册中国大学MOOC

2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程

3.学习完成第0周至第4周的课程内容,并完成各周作业

4.提供图片或网站显示的学习进度,证明学习的过程。

 

 

5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获。

                                                        

                                                        《Python网络爬虫与信息提取》读书笔记与总结

在这一周的时间里,我学习了北京理工大学嵩天老师的《Python网络爬虫与信息提取》,本课程主要讲了五个部分:

第一部分:requests库中自动爬取HTML页面和自动网络请求提交

☆requests7个主要方法:
arequests.request() 构造一个请求,支撑以下各方法的基础方法
brequests.get() 获取HTML网页的主要方法,对应于HTTPGET
crequests.head() 获取HTML网页头信息的方法,对应于HTTPHEAD
drequests.post() HTML网页提交POST请求的方法,对应于HTTPPOST
erequests.put() HTML网页提交PUT请求的方法,对应于HTTPPUT
frequests.patch() HTML网页提交局部修改请求,对应于HTTPPATCH
grequests.delete() HTML页面提交删除请求,对应于HTTPDELETE

☆requests库异常
 arequests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
 brequests.HTTPError HTTP错误异常
 crequests.URLRequired URL缺失异常
 drequests.TooManyRedirects 超过最大重定向次数,产生重定向异常
 erequests.ConnectTimeout 连接远程服务器超时异常
 frequests.Timeout 请求URL超时,产生超时异常

☆http协议对资源的6中操作:   
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置存储的资源 

第二部分:robots.txt协议中的网络爬虫排除标准

1、小规模,数据量小,爬取速度不敏感,Requests库,90%以上 ,爬取网页、玩转网页
2中规模,数据规模较大,爬取速度敏感,Scrapy库,爬取网站爬取系列网站
3大规模,搜索引擎爬取,速度关键 ,定制开发,爬取全网

第三部分:beautiful soup库中的解析HTML页面

☆beautiful soup库是解析、遍历、维护“标签树”的功能库

☆4种解析器:
soup = BeautifulSoup(‘<html>data</html>’’html.parser’)
bs4HTML解析器   BeautifulSoup(mk,’html.parser’)     安装bs4
lxmlHTML解析器    BeautifulSoup(mk,’lxml’)             pip install lxml
lxmlXML解析器        BeautifulSoup(mk,’xml’)             pip install lxml
html5lib的解析器    BeautifulSoup(mk,’html5lib’)     pip install html5lib

☆BeautifulSoup5种基本元素:
Tag 标签,最基本的信息组织单元,分别用<></>标明开头和结尾
Name 标签的名字,<p>…</p>的名字是’p’,格式:<tag>.name
Attributes 标签的属性,字典形式组织,格式:<tag>.attrs
NavigableString 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
Comment 标签内字符串的注释部分,一种特殊的Comment类型

☆三种遍历方式:下行遍历、下行遍历、平行遍历

信息标记的三种形式:xmljsonyaml
标记后的信息可形成信息组织结构,增加了信息维度
标记的结构与信息一样具有重要价值
标记后的信息可用于通信、存储或展示
标记后的信息更利于程序理解和运用

第四部分:Re正则表达式详解与提取页面关键信息

☆re库主要功能函数
re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
re.match() 从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall() 搜索字符串,以列表类型返回全部能匹配的子串
re.split() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer() 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub() 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

第五部分:scrapy库中的网络爬虫原理介绍和专业爬虫框架介绍

☆requests 库与Scrapy框架的区别

requests 库:页面级爬虫、功能库并发性考虑不足,性能较差重点在于页面下载定制灵活上手十分简单

Scrapy框架:网站级爬虫框架并发性好,性能较高重点在于爬虫结构一般定制灵活,深度定制困难入门稍难

☆Scrapy常用命令:
1startproject 创建一个新工程scrapy startproject <name> [dir]
2genspider 创建一个爬虫scrapy genspider [options] <name> <domain>
3settings 获得爬虫配置信息scrapy settings [options]
4crawl 运行一个爬虫scrapy crawl <spider>
5list 列出工程中所有爬虫scrapy list
6shell 启动URL调试命令行scrapy shell [url]

在这一周的学习中,让我们真正意义了解到python这一门语言的精炼之处,以及对爬虫这种方式所带来的的乐趣。使我们对这门语言接下来的学习过程中更加的有信心。

 

posted on 2019-10-27 14:20  陈贵来cgl  阅读(211)  评论(0)    收藏  举报