python调用微服务_python利用bottle微服务提供post接口,供第三方调用

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待

4999元包邮

去购买 >

================================jiekou.py

# coding=utf-8

'''

Created on 2017年5月9日

@author: chenkai

'''

import bottle

import urllib

import struct

from getscoretext import GetScore

def geturltoutf8(srcString):

unquotedString = urllib.unquote(srcString)

#print repr(unquotedString)

textString = unquotedString.decode('utf-8')

#print textString

return textString

@bottle.route('/score', method='POST')

def score():

data =bottle.request.body.readlines()#获取请求参数列表

#转换参数编码格式

pltext=geturltoutf8(data[0]) #第一个参数,URL编码转utf8

print pltext #打印请求参数值

#开始情感分析

result=GetScore(pltext) #这个功能是我写在getscoretext.py文件中的一个函数

print result

return result #返回参数

bottle.run(host='localhost', port=8083)

==================getscoretext.py代码

# coding=utf-8

'''

Created on 2017年5月9日

@author: chenkai

'''

from snownlp import SnowNLP

from nltk.collocations import  BigramCollocationFinder

from nltk.metrics import  BigramAssocMeasures

import re

import jieba

import jieba.analyse

import json

def GetScore(text):

#1.标点符号处理

text = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),text)

#2.结巴分词(关键词提取)

#listGJC=jieba.analyse.extract_tags(text, topK=20, withWeight=False, allowPOS=())

listGJC=jieba.cut(text,cut_all=False)

#print "关键词提取:",",".join(listGJC)

text_jieba="#".join(listGJC).split("#")

good=0.0

bad=0.0

sinple=0.0

sum=0.0

for j in text_jieba:

if SnowNLP(j).sentiments <= 0.38:

bad=bad+1

if SnowNLP(j).sentiments > 0.38 and SnowNLP(j).sentiments < 0.5 :

sinple=sinple+1

if SnowNLP(j).sentiments >= 0.5:

good=good+1

sum=sum+SnowNLP(j).sentiments

print j,"=",SnowNLP(j).sentiments

goodscore=good/len(text_jieba)

badscore=bad/len(text_jieba)

info={}

info["wordlength"]=len(text_jieba)

info["avgscore"]=sum/len(text_jieba)

info["goodpercent"]=goodscore

info["badpercent"]=badscore

info["sinplepercent"]=sinple/len(text_jieba)

if badscore>0.15:

info["result"]=1

else:

info["result"]=0

#list.append(info)

jsonStr = json.dumps(info)

return jsonStr

===========================java调用接口代码

package com.teamdev.jxbrowser.chromium.demo.other.天猫;

import java.net.URL;

import java.security.SecureRandom;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.X509TrustManager;

import org.jsoup.helper.HttpConnection;

public class testscore {

//协议

public static void trustEveryone() {

try {

HttpsURLConnection

.setDefaultHostnameVerifier(new HostnameVerifier() {

public boolean verify(String hostname,

SSLSession session) {

return true;

}

});

SSLContext context = SSLContext.getInstance("TLS");

context.init(null, new X509TrustManager[] { new X509TrustManager() {

public void checkClientTrusted(X509Certificate[] chain,

String authType) throws CertificateException {

}

public void checkServerTrusted(X509Certificate[] chain,

String authType) throws CertificateException {

}

public X509Certificate[] getAcceptedIssuers() {

return new X509Certificate[0];

}

} }, new SecureRandom());

HttpsURLConnection.setDefaultSSLSocketFactory(context

.getSocketFactory());

} catch (Exception e) {

// e.printStackTrace();

}

}

//请求商品信息

public static String search(String text) throws Exception {

URL baseurl = new URL("http://localhost:8083/score");

trustEveryone();

org.jsoup.Connection conn = HttpConnection.connect(baseurl);

conn.timeout(10000);

conn.header("Accept", "*/*");

conn.header("Accept-Encoding", "gzip, deflate, br");

conn.header("Accept-Language", "zh-CN,zh;q=0.9");

conn.header("Connection", "keep-alive");

//conn.header("Host", "mdskip.taobao.com");

//conn.header("Referer", "https://detail.tmall.com/item.htm?id="+id);

//conn.header("Cookie", "thw=cn; t=a00d02c664bfb837ed72484a4c81b509; cna=Z2zxEk5cmzACATz97ObN6ov8; tg=0; ucn=unzbyun; enc=QGMlzseKJil6PL%2B9EBrcNAPJ1zsoZDXaYNm%2BJX2VHlYHBE8YfKw%2B%2B1a5R02Iruwh7HrAPubO94INS4g4nQ5Azg%3D%3D; tracknick=%5Cu68A6%5Cu6E38%5Cu5BFB%5Cu5EA6; lgc=%5Cu68A6%5Cu6E38%5Cu5BFB%5Cu5EA6; UM_distinctid=16566b104a5157-0b2e12dbec7a96-323b5903-100200-16566b104a6b0; hng=CN%7Czh-CN%7CCNY%7C156; miid=947420887426720300; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0%26__ll%3D-1%26_ato%3D0; mt=ci=18_1&np=; cookie2=1c7db674ce04faf9d9d10eecc37faeea; _tb_token_=7eef3da3ae591; v=0; dnk=%5Cu68A6%5Cu6E38%5Cu5BFB%5Cu5EA6; unb=2515522037; uc1=cookie16=UIHiLt3xCS3yM2h4eKHS9lpEOw%3D%3D&cookie21=U%2BGCWk%2F7p4mBoUyS4E9C&cookie15=UtASsssmOIJ0bQ%3D%3D&existShop=false&pas=0&cookie14=UoTfLQFjjQxSGg%3D%3D&tag=8&lng=zh_CN; sg=%E5%BA%A674; _l_g_=Ug%3D%3D; skt=d85039103e9a8fc4; cookie1=VFdi4GN5svKzDAyUwgbmoE2X8eRTQusiTld1jf9kv2k%3D; csg=9b28e004; uc3=vt3=F8dBzrSFNJwfzcOT7IM%3D&id2=UU2zVX4u382s1Q%3D%3D&nk2=oHTaof9n%2ByM%3D&lg2=W5iHLLyFOGW7aA%3D%3D; existShop=MTUzNjI4MzUzMA%3D%3D; _cc_=VFC%2FuZ9ajQ%3D%3D; _nk_=%5Cu68A6%5Cu6E38%5Cu5BFB%5Cu5EA6; cookie17=UU2zVX4u382s1Q%3D%3D; isg=BC8v8o66qDfe0qzgFxWNOu2avkOVwqqZj5wh9UG82R6lkE-SSaQWRt5BFsAL7Ftu; _umdata=ED82BDCEC1AA6EB95DD9C2BFA38139DABBD97FE15A9C9936CBE3A614AD5D495278CF76D202BDA457CD43AD3E795C914C597301369918D8F1F05B885FD44466E4; x5sec=7b226d616c6c64657461696c736b69703b32223a223966376362353736643363623537396365393834376637346562343738633933434a4843794e7746454f655932714f516e2b2b5171674561444449314d5455314d6a49774d7a63374d513d3d227d");

//conn.header("upgrade-insecure-requests", "1");

conn.header("User-Agent","Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");

conn.data("text",text);

conn.ignoreContentType(true);

String result = conn.post().text();

//JSONObject ajson = new JSONObject(result);

return result;

}

public static void main(String[] args) {

try {

System.out.println(search("什么都不送"));

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

原文链接:http://st4024589553.iteye.com/blog/2430528

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值