轻量级爬虫架构(一)


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

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

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

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

b、创建一个请求对象request对象,添加data、http header

c、添加特殊情景的处理器
HTTPCookieProcessor //需要登陆的,借助cookie
ProxyHandler //需要代理才能访问
HTTPSHandler //https加密访问的
HTTPRedirectHandler //url相互跳转的网页
这里介绍简单的需要登录的处理:

3.网页解析器:从网页中提取有价值的数据工具
使用第三方插件BeautiSoup
a、语法

举个栗子:

b、代码

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

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



2.删除键值对



3.遍历字典




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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 本内容为《用Python写网络爬虫》书籍内容,有兴趣的读者可以购买本书,本章的代码皆可在Python3中运行。为了...
    海人为记阅读 6,700评论 0 5
  • 1.1 声明渲染{{message}}在浏览器控制台输入app.message = “new message” 可...
    changlinwang阅读 1,046评论 0 0
  • 头发画没画好
    老妖1963阅读 1,228评论 0 2
  • 有人说,喜剧就是悲剧加上时间,今天我想换一种说法,喜剧是悲剧加上善良。 以前上学的时候看过一个故事,至今记忆犹新。...
    一个有故事的小葫芦阅读 3,051评论 0 0