



如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Python:开发简易搜索引擎 (2012-06-2911:45:06) HYPERLINK"javascript:;"转载▼ 标签: HYPERLINK"http://search.sina.com.cn/?c=blog&q=python&by=tag"\t"_blank"python HYPERLINK"http://search.sina.com.cn/?c=blog&q=%BF%AA%B7%A2%CB%D1%CB%F7%D2%FD%C7%E6&by=tag"\t"_blank"开发搜索引擎 HYPERLINK"http://search.sina.com.cn/?c=blog&q=%D4%D3%CC%B8&by=tag"\t"_blank"杂谈分类:HYPERLINK"http://blog.sina.com.cn/s/articlelist_2435659643_3_1.html"\t"_blank"pythonHYPERLINK"http://kenneth.ycool.com/post.2800062.html"Python:开发简易搜索引擎 对于内容性的站点来说,搜索引擎真是一个不错的东东。不需要再为了找自己要看的东西翻遍整个网站,而只是输入关键字,让脚本来帮你找。这里,我写了个简单的站内搜索引擎,并且要讲解一下它是如何实现的。这个搜索引擎非常简单,但是很容易扩展。比如,如果你用urllib包来抓取网页,而不是仅仅索引本地的文件,你就可以用它来搜索internet上的其他站点了。 你所要做的是… 建立一个数据库用来储存所有的单词和这些单词的出现位置(在示例中我使用的是MySQL) 一个查找单词和单词出现位置的脚本,并将其存入数据库中 一个HTML的搜索表单 一个用来从数据库中搜索用户提交的关键字的脚本 一个返回搜索结果的页面,搜索结果要链向搜索到的相关页面 创建数据库 在你的MySQL数据库中创建一个表(table),命名为search。我们需要以下5列: search_id,INTEGER,NOTNULL,AUTO_INCREMENT,UNSIGNED word,VARCHAR(50),NOTNULL occurrence,INTEGER,NOTNULL,UNSIGNED url,VARCHAR(200),NOTNULL link,VARCHAR(200),NOTNULL 然后,把search_id设定为主键(PRIMARYKEY)。 如果你觉得创建一个MySQL数据库有困难的话,不要怕,在互联网上相关的资源非常多。或者你可以看看HYPERLINK"http://www.serpia.org/mysql"这个。确定已经把数据表放到你的服务器上,另外还要注意一下安全问题。稍后再继续这个话题… Python索引器 Python索引器会遍历整个页面的正文,并记录每个单词及出现的位置。代码如下: importstring importsys importre importMySQLdb #opendatabaseandmakecursor conn=MySQLdb.connect(host="localhost",user="root",passwd="***",db="***") cursor=conn.cursor() #firstemptythedatabase cursor.execute('''TRUNCATETABLEwords''') defmakeIndex(myurl,link): #openlocalhtmlfile href=link page=myurl f=open(page,"rb") f.close #initializestuffhere wordcount=0 words={} forlineinf.readlines(): line=string.strip(line) forwordinre.split("["+string.whitespace+string.punctuation+"]+",line): word=string.lower(word) ifre.match("^["+string.lowercase+"]+$",word):wordcount+=1 ifwords.has_key(word): words[word]+=1 else: words[word]=1 sorted_word_list=words.keys() sorted_word_list.sort() #nowpopulatethedatabase forwordinsorted_word_list: cursor.execute('''INSE

ys****39
实名认证
内容提供者


最近下载