这几天脑子里一直在想一个应用,想以此来练习python。用一句话来概括这个应用的功能,大致表述是这样:自动采集全省各类公共文化机构网站上新发布的信息,并分类呈现。各类公共文化机构,是指公共图书馆、文化馆、博物馆。新发布的信息主要是指各个网站每天发表的新闻。把这些新闻的标题、链接和发布时间自动抽取出来,集中在自己的网站显示。

思路如下:

(1)建立一个公共文化机构网站的列表;

(2)针对每一个网站,确定要抽取的信息所在的页面网址;

(3)对每一个网面的源码进行分析,建立抽取对应网页信息的规则;

(4)按照规则,在对应网页上,抽取需要的信息;

(5)将抽取到的信息以某种形式保存下来;

(6)将保存下来的信息进行整理、发布。

概括来说,就是要在指定网页上抽取指定内容。以上这些功能,有款叫做“八爪鱼采集器”已经做得很人性化了。我们的目标是学习pathon,所以准备自己动手试试,看能做到什么程度。

第一步和第二步不存在什么问题,可以通过某中心网站或搜索引擎来完成。

工作量最大的部分应该是第三步。这里需要对第二步确定的页面逐个分析,每一条规则可以用正则表达表表示,最终形成一个规则表达式的列表,每一条规则表达式对应一个网站的指定页。由于大部分网站都有这样一个页面,上面有发布信息的列表;而我们的目的是取得这个信息列表中每一个标题所指向的链接中的内容。故这里应需要分成两项工作:一是将信息列表中的标题和对应的链接抽取出来;二是进入刚刚得到的链接,将其中的内容提取出来。

第四步可以自动处理,不需要人工干预。这里需要确定采取什么样的数据结构以保存抽取到的信息。

第五步需要确定保存信息的文件形式,是文本文件?XLS表格?还是数据库文件?

第六步是另外一项工作,重点是确定在什么样的平台,以什么样的界面,将数据文件内容显示出来。传统WEB,还是瀑布流,或者在微信公众平台?

----------------------------

python学习(二)的更多相关文章

  1. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  2. Python学习二---字符串

    一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字 ...

  3. Python学习(二) 运行Python,编译Python

    无论windos还是Linux只要安装了python,配置好了环境变量,则在命令行输入python这个命令的时候就会进入交互模式.在这个模式下可以进行一些简单的python代码编写.退出可以使用exi ...

  4. python 学习二

    什么是JSON,JSON 是一种轻量级的数据格式,其实就是字符串 把字符串转换为字典用 json.loads() import jsons = '{"aa":1,"bb& ...

  5. Python学习二十八周(vue.js)

    一.指令 1.一个例子简单实用vue: 下载vue.js(这里实用1.0.21版本) 编写html代码: <!DOCTYPE html> <html lang="en&qu ...

  6. Python学习二(生成器和八皇后算法)

    看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 ...

  7. python学习[二]

    继续学习 http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html 词典的每个元素是键值对.元素没有顺序.dic = {'tom':11 ...

  8. Python学习(二):函数入门

    1.函数代码格式: def 函数名(): 函数内容 执行函数:函数名() 2.代码举例: #!/usr/bin/env python #coding=utf-8 #定义函数 def Func1(): ...

  9. Python学习二|Python的一些疑问

    最近写了一点Python代码,作为一个java程序员,面对Python这么便捷的语言不禁有点激动.不过呢,有时候也会遇到一些无法理解的东西. 例如: er = [[1,2,3], [4,5,6], [ ...

  10. Python学习二

    list  [ ] Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素 classmates = ['Michael', 'Bob', 'Tracy ...

随机推荐

  1. python之7-1类

    面向对象的编程,其实是将对象抽象成类,然后在类中,通过init定义实例初始化函数和多个操作实例的函数. 整个类就如同一个模板,我们可以用这个模板生成众多具现实例,并赋予实例动作. py中定义类的大致格 ...

  2. 读取Excel文件内容在Web上显示

    点击事件代码.cs protected void Button1_Click(object sender, EventArgs e) { string strPath = "d:/test. ...

  3. Entity Framework With Mysql 之Code First

    Entity Framework 4.0现在也可以支持Mysql数据库了,这篇文章将向你展示如何用Code First的方式来实现. 1.首先新建一个项目,在项目中用NuGet添加如下引用: 2.在w ...

  4. 这样就算会了PHP么?-9

    PHP关于COOKIE的应用 <?php if (!isset($_COOKIE["visittime"])) { setcookie("visittime&quo ...

  5. C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转

    原文:C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing ...

  6. 基于异步的MVC webAPI控制器

    MVC – Task-based Asynchronous Pattern (TAP) – Async Controller and SessionLess Controller Leave a re ...

  7. scheme 阴阳谜题

    本篇分析continuation的一个著名例子"阴阳迷题",这是由David Madore先生提出的,原谜题如下: (let* ((yin ((lambda (foo) (disp ...

  8. opencv视频跟踪2

    在前面的报告中我们实现了用SURF算法计算目标在移动摄像机拍摄到的视频中的位置.由于摄像机本身像素的限制,加之算法处理时间会随着图像质量的提高而提高,实际实验发现在背景复杂的情况下,结果偏差可能会很大 ...

  9. 关于DevExpress的gridControl的简单使用

    数据绑定 首先生成table,然后更改列名,最后添加一个选择列,类型为"System.Boolean",这样在绑定上gridcontrol的时候会出现一列选择框 table.Col ...

  10. Ubuntu下访问SSH

    ssh程序分为有客户端程序openssh-client和服务端程序openssh-server.如果需要ssh登陆到别的电脑,需要安装openssh-client,该程序ubuntu是默认安装的.而如 ...