轻量级爬虫架构(一)

轻量级爬虫架构(一)_第1张图片

哈哈哈,我来迟了......
首次接触,发现有好多知识需要再去学习,比如练习时,把数据存入数据库的管理工具PhpMyAdmin使用方法,重拾SQL语句,解析所需要用到的第三方插件BeautifulSoup的安装等等,学海无涯啊!
这一周,学习了一些简单的爬虫架构,借着学姐的成果 http://www.jianshu.com/p/6b90689d6342 尝试着,利用python爬取广西科技大学教务管理信息系统班级课表。
通信的童鞋们,下学期的课表来了!
轻量级爬虫架构(一)_第2张图片

(一)什么是爬虫?
爬虫:一段自动抓取互联网的程序。从一个URL页面出发,同时访问到与其相关联的页面,获取我们所需要的有价值的数据,再利用数据,创造出更多的有利地产品。
轻量级爬虫架构(一)_第3张图片

(二)爬虫架构
目前,在我的认识里,把其分为简单的和复杂的爬虫。
复杂:
a、用户登录了以后才可以访问的
b、有些网页是使用JavaScript,异步加载的内容
简单(本次所要介绍的):
不需要登录的静态网页抓取,通俗点儿,就是人人都可以看到的页面
A、运行流程图
轻量级爬虫架构(一)_第4张图片

1.调度器向URL管理器询问是否有待爬取的页面?
2.若有,则它获取一个。并用下载器进行下载URL内容
3.利用第三方插件BeautifulSoup对内容解析,解析出价值数据
4.再将数据进行应用
B、步骤分解
1.URL管理器:管理待爬取的URL集合和已经爬取过的URL集合,防止重复、循环抓取
2.网页下载器:将互联网上URL对应的网页下载到本地的工具
关于下载器,Python有自带的urllib2可以基本上应付得了。但是,为了有时需要我把Python 2.X和3.X两个版本都安装上了。
urllib2下载网页的三种方法:
a、最简洁的方法:
轻量级爬虫架构(一)_第5张图片

b、创建一个请求对象request对象,添加data、http header
轻量级爬虫架构(一)_第6张图片

c、添加特殊情景的处理器
HTTPCookieProcessor //需要登陆的,借助cookie
ProxyHandler //需要代理才能访问
HTTPSHandler //https加密访问的
HTTPRedirectHandler //url相互跳转的网页
这里介绍简单的需要登录的处理:
轻量级爬虫架构(一)_第7张图片

3.网页解析器:从网页中提取有价值的数据工具
使用第三方插件BeautiSoup
a、语法
轻量级爬虫架构(一)_第8张图片

举个栗子:

b、代码
轻量级爬虫架构(一)_第9张图片

基本按照此方法就可获得自己想要的结果,把获取到的数据加以应用。
以上:是最基本的方法,但是想要抓取复杂的页面得还要继续学习

最后给大家介绍一个很好用的东西——字典,刚开始看到这个词挺是好奇的。
字典:一系列的键—值对。每个键都有与之相关联的值,我们可以通过键来访问与之相关联的值,其中的值可以是数字,字符串,列表乃至字典,存放的数据不受限制。
1.先创建一个空字典


轻量级爬虫架构(一)_第10张图片

2.删除键值对


轻量级爬虫架构(一)_第11张图片

3.遍历字典




但是sorted方法提取字典中所有的值,可能会有重复的。为了剔除重复项使用集法set(),是每个元素独一无二。

ps:在抓取课表时,可能会因为每个人使用的软件版本不同,同样的代码仍然会报错,不想换版本就老老实实地解决bug吧,因为我就是这样折腾了两天。

你可能感兴趣的:(轻量级爬虫架构(一))