Reference to this question我想将一个MS Word(.doc)文件发送到作为服务运行的tika应用程序,我该怎么做?python将文件发送到作为服务运行的tika
有此链接运行蒂卡: http://mimi.kaktusteam.de/blog-posts/2013/02/running-apache-tika-in-server-mode/
但对于Python代码来访问它,我不知道我是否可以使用套接字或urllib的或者究竟是什么?
Reference to this question我想将一个MS Word(.doc)文件发送到作为服务运行的tika应用程序,我该怎么做?python将文件发送到作为服务运行的tika
有此链接运行蒂卡: http://mimi.kaktusteam.de/blog-posts/2013/02/running-apache-tika-in-server-mode/
但对于Python代码来访问它,我不知道我是否可以使用套接字或urllib的或者究竟是什么?
对于远程访问Tika,基本上有两种方法可用。一个是Tika JAXRS Server,它提供了一个完整的RESTful界面。另一个是简单的Tika-App --server mode,它只是在网络管道级别工作。
对于生产用途,您可能需要使用Tika JAXRS服务器,因为它的功能更为全面。对于简单的测试和入门而言,服务器模式下的Tika应用应该没问题
对于后者,只需连接到您正在运行Tika-App的端口,将其传输到您的文档数据中,然后阅读您的html返回。例如,在一个终端运行
$ java -jar tika-app-1.3.jar --server --port 1234
然后,在另一个做
$ nc 127.0.0.1 1234 < test.pdf
然后,您会看到HTML测试PDF的返回
从蟒蛇,你只想要一个简单的套接字调用就像netcat那样做,发送二进制数据,然后回读结果。例如,你可以试试:
#!/usr/bin/python
import socket, sys
# Where to connect
host = '127.0.0.1'
port = 1234
if len(sys.argv) < 2:
print "Must give filename"
sys.exit(1)
filename = sys.argv[1]
print "Sending %s to Tika on port %d" % (filename, port)
# Connect to Tika
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
# Open the file to send
f = open(filename, 'rb')
# Stream the file to Tika
while True:
chunk = f.read(65536)
if not chunk:
# EOF
break
s.sendall(chunk)
# Tell Tika we have sent everything
s.shutdown(socket.SHUT_WR)
# Get the response
while True:
chunk = s.recv(65536)
if not chunk:
# EOF
break
print chunk
是否有一个原因,你打算使用蒂卡应用服务器,而不是更全功能[提卡JAXRS服务器(HTTPS://wiki.apache。组织/蒂卡/ TikaJAXRS)? – Gagravarr
这基本上是我设法在我的系统上安装的,因为我无法轻松安装新的东西 – hmghaly