1.注册中国大学MOOC
2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程
3.学习完成第0周至第4周的课程内容,并完成各周作业
4.提供图片或网站显示的学习进度,证明学习的过程。
5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获。
requests库:
requests.requests()构造一个请求,支撑一下各方法的基础方法
requests.get()获取HTML网页的主要方法,对应于HTTP的GET
requests.head()获取HRML网页头信息的方法,对应于HTTP的head
requests.post()向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete()向HTML页面提交删除请求,对应于HTTP的DELETE
requests.requests(method,url,**kwargs)
method:请求方式,对应get/put/post等7种
例:r = requests.requests('GET',url,**kwargs)
url:拟获取页面的url链接
**kwargs:控制访问的参数,共12个,分别为params,data,json,header,cookies,auth,files,timeout,proxies,allow_redirects,stream,verify,cert。
BeautifulSoup库:
基本元素有:
Tag:标签,最基本的信息组织单元,分别用<>和>表明开头和结尾
Name:标签的名字,
Atrributes:标签的属性,字典形式组织,格式:
NavigableString:标签内非属性字符串,<>...>中字符串,格式:
Comment:标签内字符串的注释部分,一种特殊的Comment类型
标签树的下行遍历:
.content 子节点的列表,将
.children 子节点的迭代类型,与.content类似,用于循环遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
标签的上行遍历:
.parent 节点的父亲标签
.parent 节点先辈标签的迭代类型,用于循环遍历先辈节点
标签的平行遍历:
.next_sibling 返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.next_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点的标签
.previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
<>.find_all(name,attrs,recursive,string,**kwargs)
返回一个列表类型,存储查找结果
name:对标签名称的检索字符串
attrs:对标签属性值的检索字符串,可标注属性检索
recursive:是否对子孙进行全部检索,默认值为True
string:<>...>中字符串区域的检索字符串
正则表达式的常用操作符
. 表示任何单个字符
[] 字符集,对单个字符给出取值范围,例如:[abc]表示a、b、c,[a-z]表示a到z单个字符
[^] 非字符集,对单个字符给出排除范围,例如:[^abc]表示非a或b或c的单个字符
* 前一个字符0次货无限次扩展,例如abc* 表示ab,abc,abcc,abccc等
+ 前一个字符1次货无限次扩展,例如:abc+表示ab,abc,abcc,abccc等
? 前一个字符0次或1次扩展,例如:abc?表示ab,abc
! 左右表达式任意一个,例如:abc|def 表示abc、def
{m} 扩展前一个字符m次,例如:ab{2}c表示abbc
{m,n} 扩展前一个字符m至n次(含n),例如:ab{1,2}c表示abc、abbc
^ 匹配字符串开头,例如:^abc表示abc且在一个字符串的开头
$ 匹配字符串的结尾,例如:abc$表示abc切在一个字符串的结尾
() 分组标记,内部只能使用|操作符,例如:(abc)表示abc,(abc|def)表示abc、def
\d 数字 等价于[0-9]
\w 单词字符,等价于[A-Za-z0-9]
Re库主要功能函数
re.search(pattern,string,flags=0)在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
re.match()从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall()搜索字符串,以列表类型返回全部能匹配的字串
re.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.findliter()搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub()在一个字符串中替换所有匹配正则表达式的字串,返回替换后的子串
有一说一,确实,有时候觉得python和网站的互动还是挺有意思的,但是,有可能是自身的学习程度不够,所以在看实例的时候有些吃力,理解需要花费一点时间。这些都不算什么,这次的学习让我学到了很多,受益匪浅,特别是运用爬虫去爬取网页信息的时候让我觉得,有时候python还是挺好玩的,以后一定好好的学习相关方面的知识,让自己前进的道路多一盏明灯!