首页 > 技术文章 > 第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

wwmmhh 2019-10-30 17:24 原文

1.注册中国大学MOOC

2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程
3.学习完成第0周至第4周的课程内容,并完成各周作业

 

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

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

       在学习了嵩天老师的python网络爬虫与信息提取的视频课程后,让我对网络爬虫有了进一步的了解,让我狭小的知识邻域有所扩大。下面分享一下我的一些学习心得。

在整个周期学习过程中,我总结归纳有五个主要部分,分别为

1、Requests:自动爬取HTML页面,自动网络请求提交;

2、robots. txt:网络爬虫排除标准;

3、Beautiful Soup:解析HTML页面,框架解析、提取相关信息;

4、Re:正则表达式详解,提取页面局部关键信息;

5、Scrapy:专业网络爬虫框架。

       在第零周的学习过程中,我了解到了有12种常用的python IDE,而我们这门课用到的文本工具类的IDE有IDLE,它是适用于python入门、功能简单直接、300+代码以内使用,并且它有两种编辑形式,分别为交互式和问件式。另外一种文本类的IDE为Sublime Text,它是专为程序员开发的第三方专用编程工具,有多种编程风格。用到的两种集成工具IDE为PyCharm和Anaconda & Spyder,PyCharm社区版免费、简单、集成度高适用于复杂工程,Anaconda是开源免费的并且支持800个左右的第三方库。这些将是在后面几周的学习中我们即将用到的工具。

       在第一周的学习过程中,首先我们学习了Requests库的安装、它的七个主要方法、HTTP协议对资源的操作、Response对象属性、Requests库的六种异常、学习操作了五个实例练习和了解了网络爬虫的尺寸,避免踩雷。在Response对象属性理解中,要注意区分:

request:爬虫请求request对象

response:爬虫返回的内容

r.encoding 从http header中猜测的响应内容的编码方式 。如果header中不存在charset,则认为编码为ISO-8859-1,这个编码不能解析中文

r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)。

从网页内容中推断编码方式,更加准确一些,当encoding不能解析正确编码方式时,采用这个。

       在第二周的学习中,Beautiful Soup库是解析、遍历、维护“标签树”的功能库,它提供了五种基本元素和三种遍历方法。信息标记的三种方法XML最早的通用信息标记语言,可扩展性好,但是繁琐;JSON信息有类型,适合程序处理,较XML简洁;YAML信息无类型,文本信息比例最高,可读性好。

       在第三周的学习中,我学习到了正则表达式,它是用来简洁表达一组字符串的表达式。它有三种表达式类型raw string类型、string类型、raw string类型,它的调用方式有re.()或re.complie()。还了解了re库的功能函数和match对象,让我们能更好的表达一些复杂的字符串。在实例淘宝商品比价定向爬虫中,它的难点在于淘宝搜索的接口,但是在打完所有代码时发现代码报错,经百度才知道淘宝现在需要用户登录才能进行搜索,因此需要将网页的cookies和users-agent的相关信息进行修改才能正常爬虫。

       在第四周的学习中,Scrapy是一个5+2结构的爬虫框架。在此课程中我学习到了Scrapy与Requests的选择方式:①非常小的需求:requests库;②不太小:Scrapy,持续周期爬取信息,积累形成库;③定制程度很高:自搭框架,requests>Scrapy。Scrapy的使用步骤为:①创建一个工程和Spider模板;②编写Spider;③编写Item Pipleline;④优化配置。

       在此次学习的过程中,虽然所接触到的很多都是新知识,这让我的吸收量一下子变得很大,但是一天学一点,每天都能收获新的知识,这是对自己有益无害的。学习过程中虽然遇到了很多的问题,有很多的知识点也是懵懵懂懂,但是能通过自己后期的努力克服并且战胜它就是对自己最大的帮助。

推荐阅读