python之扫描本地信息到Solr服务

原创 2015年11月19日 00:18:48

##scan_to_solr.py


#-*-coding:utf-8-*-
import urllib
import os,sys,re
import urllib2,httplib
import threading
import time
urlMap = {}
gEnd = False
gExit = False
gOK = 0
gErr = 0
reload(sys)
#sys.setdefaultencoding('utf-8')
sys.setdefaultencoding('gbk')
gCount = 0
gErrorList = []
gErrNumber = 0
def getUrl(url):
    try:
        return urllib2.urlopen(url,timeout=240).read()
    except:
        print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXload error~"
        return None

def addIndex(key,value):
    url = u'http://192.168.4.60/baidu/src/addServer.php?ch=%s&jp=%s' % (key.decode("gbk"),value)
    ret = getUrl(url.encode("utf-8"))
    if ret != None:
    	return True
    return False

def getList(dirname,pFunc):
    try:
        ls=os.listdir(dirname)
    except:
        print dirname,'is access deny'
    else:
        for file in ls:
            temp = os.path.join(dirname,file)
            if(os.path.isdir(temp)):
                getList(temp,pFunc)
            else:
                pFunc(dirname,file)

"""
    callBack Function 
"""
def doAddFile(dir,file):
    global gCount
    global urlMap,gOK,gErr,gErrNumber,gErrorList
    if file == "entries" or file == "toIndex.py" or file == "index.txt":
    	return
    if re.search("(.ppt|.pptx|.xls|.txt|.doc|.vsd|.pdf|.rar|.xlsx|.zip|.docx|.tar|.gz|.iso|.rpm|.sql)$",file):
		gCount = gCount + 1
		dir = dir.replace("\\","/")
		svnUrl = 'svn://192.168.0.248:9997/DOC/' + u'软件部/'
		anchor = "%s%s" % (svnUrl,dir[11:].decode("gbk"))
		print file
		file = file.replace(" ","")
		print "###############"
		print file
		print "###############(%d)" % (gCount)
		ret = addIndex(file,anchor)
		if ret == True:
			gOK = gOK + 1
			print "OOO KKK(%d)\n" % (gOK)
			time.sleep(1)
		else:
			gErr = gErr + 1
			print "NNN GGG(%d)\n" % (gErr)
			addIndex(key,value)

"""
    Main Inport
"""
print "\n============================== Begin ScanDir ========================================"
getList(os.getcwd(),doAddFile)
print "ScanFile(%d)" % (gCount)
print "\n========================================================================================"
print "OK(%d) ,Error(%d)" % (gOK, gErr)


@@用法说明

scan_to_solr.py

扫描本地文件提交到Solr的模糊检索服务中

solr服务搭建

一。安装solr服务 1. 安装jdk,安装tomcat. 2. 解压solr压缩包 3. 将solr下的dist/solr.war部署到tomcat下。 4. 启动tomcat解压w...
  • u010317829
  • u010317829
  • 2016年11月23日 10:07
  • 370

Python学习-端口扫描-对本地host127.0.0.1的主机进行扫描端口

Python学习-端口扫描-对本地host127.0.0.1的主机进行扫描端口
  • xwbk12
  • xwbk12
  • 2017年05月09日 10:44
  • 452

Solr服务搭建

1.   Solr服务搭建 1.1. Solr的环境 Solr是java开发。 需要安装jdk。 安装环境Linux。 需要安装Tomcat。 1.2. 搭建步骤 第一步:把so...
  • qq_18871617
  • qq_18871617
  • 2018年01月11日 15:46
  • 19

从HBase读取数据提交到Solr建立索引

从HBase中读取数据既可以直接调用HTable等api接口,也可以采用MapReduce的方式来读。如果数据表比较大,分成多个region来存储,后者可以显著提高数据读取效率。HBase提供了一个行...
  • u013092929
  • u013092929
  • 2013年12月09日 19:58
  • 2661

python用post方法,向solr进行删除,更新,插入操作

我们现在有这样的业务需求,需要将数据的变化同步到solr中,post方法,通过url传递值。     其中update和insert操作,其实是一样的 headers = {'content-...
  • gurenyuan123
  • gurenyuan123
  • 2016年04月06日 15:51
  • 539

Python实现对一个网络段扫描及端口扫描

近日网络安全老师布置了一个题目,让搞一个端口扫描器,心想没有Python解决不了的问题,因为时间紧,就简单的做了一个,没有使用线程,电脑也比较low  速度较慢,凑合着也能跟着玩(端口扫描我用的是nm...
  • GG_Killer
  • GG_Killer
  • 2016年12月14日 12:35
  • 2067

Solr学习一平台的搭建

solr的搭建
  • a491857321
  • a491857321
  • 2016年09月08日 11:19
  • 886

solr5.5.0服务启动与停止

1.解压solr5.5.0.zip文件,加压后为 2.进入bin目录后输入命令 开启服务//solr服务默认端口为8983 solr start //可以指定端口 solr start -p ...
  • zmken497300
  • zmken497300
  • 2016年06月20日 23:05
  • 943

python爬虫抓取图片到本地

有次电话面试,被问到爬虫能不能抓取图片。当时觉得爬虫是抓取的文本,应该抓不到图片吧。简单的python竟然几行就可以搞定。 代码如下: '''获取image.baidu.com的图片url,下载到...
  • pinellina
  • pinellina
  • 2016年03月12日 22:29
  • 1749

Solrj连接Solr服务

Solr服务搭建好之后,需要在代码里面连接上Solr服务。和Jedis类似,Java操作Solr服务也需要一个助攻的Jar包,就是solrj。   在Maven工程的pom.xml文件中加入...
  • u013038861
  • u013038861
  • 2017年02月12日 19:29
  • 732
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python之扫描本地信息到Solr服务
举报原因:
原因补充:

(最多只允许输入30个字)