1.注册中国大学MOOC
2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程
3.学习完成第0周至第4周的课程内容,并完成各周做业正则表达式
4.提供图片或网站显示的学习进度,证实学习的过程。编程
5.写一篇很多于1000字的学习笔记,谈一下学习的体会和收获。浏览器
学习笔记:cookie
经过一周的时间,我学习了北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程的前四周内容,了解了从未知晓的Python知识。大三第一次接触Python的时候,就以为这是一个很厉害的编程语言,它拥有强大的第三方库,以及简单、可扩展、免费、开源等特色,并在任课老师的介绍下,我初次认识到能够用Python进行网络爬虫。而这一次网络课程的学习,正是让我进一步探究Python的高级之处。网络
前四周课程分别讲了网络爬虫的规则、提取、实战和框架。框架
在《规则》中,我学习了Requests库以及它的7个方法,而get()方法是最常使用的方法。网络链接有风险,异常处理很重要,嵩天老师给出一个代码框架,是利用try-except的方式来实现,保证网络链接的异常可以被有效处理。另外,网络爬虫也是须要遵照必定的规则,那就是遵照Robots协议。编程语言
在《提取》中,Beautiful Soup库是用来解析HTML和XML文档的功能库。bs4库提供了5种基本元素和3种遍历功能。XML用尖括号和标签标记信息;JSON用有类型的键值对标记信息,适合程序的使用;而YAML用无类型的键值对标记信息,适合人们理解。在实例1:中国大学排名爬虫中,我学习到一个输出对齐的小技巧,即采用中文字符的空格填充chr(12288),将它引入print中就能够。ide
在《实战》中,我学习了正则表达式,它有两种调用方式:一种是re.(方法)直接调用函数,另外一种是先用re.compile()函数编译成正则表达式对象,再用正则表达式对象调用函数。能够说,正则表达式能找到想提取的任何关键信息。有特征的数据能够用正则表达式库来提取,若是数据的位置比较固定,则适合用Beautiful Soup库定位到它的位置,再用正则表达式库得到内容。若是,合理地将Beautiful Soup库和正则表达式库结合起来获取内容,那么这将是一种很是不错的方法。实例3:股票数据定向爬虫,老师实现了展现爬取进程的动态滚动条,给用户一个很好的用户体验。函数
在《框架》中,我了解到Scrapy框架包括“5+2”结构和三个数据流的路径,它是经过cmd命令行实现配置文件的建立,并修改相应文件的代码实现Scrapy爬虫。整个过程大体分为4个步骤,分别是:创建工程和Spider模板、编写Spider、编写Pipeline、配置优化。学习
听课时,我跟着老师编写了不少实例,虽说有源代码能够参考,但实际操做起来仍是存在大大小小的问题。在“最好大学”的实例中,遇到了'NoneType' object has no attribute 'children’的问题,起初是觉得requests包没有导入,后来才发现是url的缘由,老师给的url是https开头,将https改成http便可。再好比,“淘宝比价获取”实例,根据老师的代码,没法读取页面信息,只有自定义表头,后来百度找到缘由:在淘宝获取页面时,淘宝设置了登陆验证才能访问,此时在requests请求时,须要设置cookies和user-agent,因而,我经过浏览器查看,将user-agent和cookies写入getHTMLText()中。另外,百度股票页面现在已没法访问,因此只能换成其余的股票网站来进行练习。
虽然花的时间有点久,但总归是有所收获。好比:正则表达式库很好地支撑了文本匹配、文本替换的工做;好的程序和通常的程序,最大的差异不在于功能上,而在于用户体验,完成一个程序并不难,难就难在后续不断优化的过程。看完视频后再去作限时的题目,我感到并不容易,由于题目里不少都是细节性的问题,看视频时稍微一走神可能就会错过这个知识点,因此课后仍是须要多加理解和练习。