第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

1.注册中国大学MOOC
2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程
3.学习完成第0周至第4周的课程内容,并完成各周作业
4.提供图片或网站显示的学习进度,证明学习的过程。
5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获。

 

       通过对该课程的学习,初步对网络爬虫有了一定的了解。网络爬虫作为对网络上的信息抓取工具对于网站来说资源占用过高,所以各方都会对其做出限制。一部分通过robot协议来约束,但不能成为绝对限制。一部分通过协议中的信息来判断其是否为爬虫,但是可以修改对应的数据来欺骗。

       网络爬虫利用库文件或者对应的框架来对一些数据进行抓取,但是如何处理抓取的数据是个问题。抓取数据只是最开始的一步。在大数据的背景下,数据本身并不是重点,关键是对于数据的处理,这里包括筛选出有效数据。当然有效数据的选择可以在一开始就选择。在计算机中,通常会用到正则表达式去做数据的筛选,通过给出的正则表达式去匹配满足条件的字符串,就可以达到我们选择有效数据的目的。

       该课程先给我们介绍了requests库的使用,可以抓取页面的代码信息。在这过程中,给我们介绍了如何正确合理的去抓取数据,避免法律纠纷,并给出了相应的例子。在requests库中最常使用的还是get,通过get方法发送请求。http协议的通常还有post请求,也可以用post方法。关于用户登陆,就涉及cookie 和 session。Cookie是保存在本地,而session是保存在服务端。我们要利用cookie去访问登陆界面,通过cookie中保存的信息让服务器认定我们已经登陆。而使用的方法却是session方法。

       之后介绍beautiful soup库。这个库是用于数据解析,解析html文件。在网页中是是哟个html标签语言进行编写的,就需要对其进行解析。还需要注意编码格式问题,bs4库采用utf-8的编码。网页中的信息,还有一些键值对,也就是字典通常时使用json包的方式存储,这时候我们需要对它进行解析从而获得字典。网页访问的过程当中还有表单请求等,这个应该在其他库中会有介绍。

       正则表达式理解难度上稍大,它能够通过匹配条件去匹配大量数据,速率上快速了很多。正则表达式对于字符串的查找相当有效。一个表达式就能代表一组相同特点的字符串,这对于代码编写省力了很多。

       最后一部分介绍了scrapy爬虫框架。这个是专业爬虫,可以根据抓取的内容进行分析,然后根据结果发起一次新的请求。框架通常用于需求高,请求多的情况下,但需要定制内容多的时候就可以使用requests库。框架的学习投入的时间成本会比较高,通过课程的学习还是不能掌握的。课程中简单介绍了爬虫框架的构成,以及简单的使用和例子。

       总的来说,我对于网络爬虫的理解就是抓取网站信息的工具。如何有效的抓取是核心问题。它分为如何不被识别抓取,和抓取的数据有效性。如何不被识别抓取,就会涉及访问次数和效率之间的平衡。而有效抓取,就是对于数据的识别判断,和正则表达式相关。

posted on 2019-10-30 11:12  robot9  阅读(120)  评论(0编辑  收藏  举报

导航