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

1.注册中国大学MOOC

 

 

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

 

 

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

 

 

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

 

 

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

第一次学习的是Python爬取图片信息。

网上有很多很多关于这一类东西的教程,我也仅仅是可以实现,并且停留在一知半解的程度,在代码过程中添加了很多对Python的新的理解,对编程这个大集合的更深层的理解。

网上的任何东西都可以看成资源,一个网站可能就是一段html+css,一张图片可能就是某个地址下的XXX.jpg文件,无数的网络资源存放在互联网上,人们通过地址(URL,统一资源定位符)来访问这些资源,大致过程如下:

用户在浏览器中输入访问地址,浏览器向服务器发送HTTP(或者HTTPS)请求(其中请求资源常用get请求,提交数据常用post请求,post也可做数据请求)。服务器接收到了这些请求之后找到对应的资源返回给浏览器,再经过浏览器的解析,最终呈现在用户面前。

这就是用户上网的一个简单的过程。那么,如果我们需要大量的从网上请求数据,依靠人工一个个得机械操作显然是不现实的,这时候爬虫就起作用了。

一开始先要搞清楚什么是爬虫。

其实本质上来说爬虫就是一段程序代码。任何程序语言都可以做爬虫,只是繁简程度不同而已。从定义上来说,爬虫就是模拟用户自动浏览并且保存网络数据的程序,当然,大部分的爬虫都是爬取网页信息(文本,图片,媒体流)。但是人家维护网站的人也不是傻的,大量的用户访问请求可以视为对服务器的攻击,这时候就要采取一些反爬机制来及时阻止人们的不知道是善意的还是恶意的大量访问请求(当然了= =不这样人家服务器吃枣爆炸)。

网站爬取过程中我们会碰到以下几种情况:

1.直接加载资源无处理

2.使用ajax异步加载

3.带参数验证的加载

4.cookie验证

5.登录验证

6.js加密

第一种无需解释,第二种是用户访问过程中异步向服务器发送请求会给筛选爬取数据增加难度,第三种是参数验证例例如时间戳,ip等,第四种是追踪验证用户的本地数据,第五种是身份验证,第六种是加载后对数据进行加密操作增加爬取难度。

本次学习只处理到第三层,带参数验证的网站加载。1

在通过如pymysql模块进行连接的时候需要设置charset='utf8',如conn = pymsql.connect('localhost','root','root','db',charset='utf8')。在创建表的时候同样设置成utf8,如create table table_name( xxxxxxxx) character set utf8;。

posted @ 2019-10-31 22:20  不少于7个字符  阅读(140)  评论(0编辑  收藏  举报