python学习(二)
这几天脑子里一直在想一个应用,想以此来练习python。用一句话来概括这个应用的功能,大致表述是这样:自动采集全省各类公共文化机构网站上新发布的信息,并分类呈现。各类公共文化机构,是指公共图书馆、文化馆、博物馆。新发布的信息主要是指各个网站每天发表的新闻。把这些新闻的标题、链接和发布时间自动抽取出来,集中在自己的网站显示。
思路如下:
(1)建立一个公共文化机构网站的列表;
(2)针对每一个网站,确定要抽取的信息所在的页面网址;
(3)对每一个网面的源码进行分析,建立抽取对应网页信息的规则;
(4)按照规则,在对应网页上,抽取需要的信息;
(5)将抽取到的信息以某种形式保存下来;
(6)将保存下来的信息进行整理、发布。
概括来说,就是要在指定网页上抽取指定内容。以上这些功能,有款叫做“八爪鱼采集器”已经做得很人性化了。我们的目标是学习pathon,所以准备自己动手试试,看能做到什么程度。
第一步和第二步不存在什么问题,可以通过某中心网站或搜索引擎来完成。
工作量最大的部分应该是第三步。这里需要对第二步确定的页面逐个分析,每一条规则可以用正则表达表表示,最终形成一个规则表达式的列表,每一条规则表达式对应一个网站的指定页。由于大部分网站都有这样一个页面,上面有发布信息的列表;而我们的目的是取得这个信息列表中每一个标题所指向的链接中的内容。故这里应需要分成两项工作:一是将信息列表中的标题和对应的链接抽取出来;二是进入刚刚得到的链接,将其中的内容提取出来。
第四步可以自动处理,不需要人工干预。这里需要确定采取什么样的数据结构以保存抽取到的信息。
第五步需要确定保存信息的文件形式,是文本文件?XLS表格?还是数据库文件?
第六步是另外一项工作,重点是确定在什么样的平台,以什么样的界面,将数据文件内容显示出来。传统WEB,还是瀑布流,或者在微信公众平台?
----------------------------

python学习(二)的更多相关文章
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- Python学习二---字符串
一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字 ...
- Python学习(二) 运行Python,编译Python
无论windos还是Linux只要安装了python,配置好了环境变量,则在命令行输入python这个命令的时候就会进入交互模式.在这个模式下可以进行一些简单的python代码编写.退出可以使用exi ...
- python 学习二
什么是JSON,JSON 是一种轻量级的数据格式,其实就是字符串 把字符串转换为字典用 json.loads() import jsons = '{"aa":1,"bb& ...
- Python学习二十八周(vue.js)
一.指令 1.一个例子简单实用vue: 下载vue.js(这里实用1.0.21版本) 编写html代码: <!DOCTYPE html> <html lang="en&qu ...
- Python学习二(生成器和八皇后算法)
看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 ...
- python学习[二]
继续学习 http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html 词典的每个元素是键值对.元素没有顺序.dic = {'tom':11 ...
- Python学习(二):函数入门
1.函数代码格式: def 函数名(): 函数内容 执行函数:函数名() 2.代码举例: #!/usr/bin/env python #coding=utf-8 #定义函数 def Func1(): ...
- Python学习二|Python的一些疑问
最近写了一点Python代码,作为一个java程序员,面对Python这么便捷的语言不禁有点激动.不过呢,有时候也会遇到一些无法理解的东西. 例如: er = [[1,2,3], [4,5,6], [ ...
- Python学习二
list [ ] Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素 classmates = ['Michael', 'Bob', 'Tracy ...
随机推荐
- sql基础复习
--.while循环 declare @sum int declare @i int ) begin set @sum =@sum+@i ) print @i end print @sum --.go ...
- Swift—计算属性-备
计算属性本身不存储数据,而是从其他存储属性中计算得到数据. 计算属性概念: 计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值. ...
- Lintcode--009(单词切分)
http://www.lintcode.com/zh-cn/problem/word-break/ 单词切分 给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词. ...
- 把zlog封装成模块,隐藏zlog
mylog.h #ifndef _MY_LOG_H #define _MY_LOG_H int init(char *filename); void *get_category(char * cate ...
- 《VIM-Adventures攻略》 LEVEL 1-3
此文已转至http://cn.abnerchou.me/2014/03/04/e40e2146/ 上期有人提到此游戏烂尾.其实没有啦,作者是位"贪财"的主,不付费不给玩剩下的章节. ...
- cf C. Matrix
http://codeforces.com/contest/365/problem/C 构造出的矩阵中的长方形的和等于构成它的长的那些数字的和加上构成它的宽的那些数字的和. 也就是求这个字符串中的两个 ...
- Codeforces 538E Demiurges Play Again(博弈DP)
http://codeforces.com/problemset/problem/538/E 题目大意: 给出一棵树,叶子节点上都有一个值,从1-m.有两个人交替从根选择道路,先手希望到达的叶子节点尽 ...
- LeetCode_Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- ASM-51 宏汇编使用手册
A51与ASM51基本相同 ASM-51 宏汇编主要用来开发Inter8051系列单片机,它具有宏处理,数据处理,列表处理和条件处理等多种功能.源程序的编写完全采用 Inter标准助记符和行格式. ...
- Qt创建和使用动态链接库
一.创建共享库 1.新其他建项目,选择C++库 2.选择共享库,并取项目名称,单击下一步.这里取名位mylib 3.按默认配置单击下一步至模块选项,选择所需支持的模块.这里勾选Qtcore和QtGui ...