실행하기 나는 Server()
클래스 아래 내에서이 개 기능 (recharge_list and sms_list)
이기능하지가 파이썬
import os
import json
import requests
import cherrypy
import ConfigParser
from bs4 import BeautifulSoup
class Server():
@cherrypy.expose
def index(self):
return "Seems Like You're Lost :D"
@cherrypy.expose
def recharge_list(self,carrier, state):
details_array=[]
small_details_array=[]
price_cell_array=[]
lst = []
url = "link{}/{}".format(carrier,state)
try:
if self.t_arr.get(url) is not None:
return json.dumps({'data': self.t_arr[url]})
except AttributeError:
self.t_arr = {}
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data,"html.parser")
table = soup.find('table',{'class':'table'})
s=""
detailtext = table.findAll('div',{'class':'detailtext'})
for det in detailtext:
details_array.append(det.text)
smalldetails = table.findAll('div',{'style':'padding-top:5px'})
for smallDet in smalldetails:
small_details_array.append(smallDet.text);
price_cells = table.findAll('td', {'class': 'pricecell'})
for price_cell in price_cells:
price_cell_array.append(price_cell.text)
for i in range(len(details_array)):
d_arr = {}
d_arr['detail']=details_array[i]
temp = small_details_array[i].split('\n')
d_arr['talktime'] = temp[1]
d_arr['keyword']=temp[3]
tempnew = price_cell_array[i].split('\n')
d_arr['price'] = tempnew[1]
d_arr['validity'] = tempnew[3]
# global list
lst.append(d_arr)
self.t_arr[url] = lst
return json.dumps({'data': self.t_arr[url]})
@cherrypy.expose
def sms_list(self,carrier, state):
details_array=[]
price_cell_array=[]
lst = []
url = "link/{}/{}".format(carrier,state)
try:
if self.t_arr.get(url) is not None:
return json.dumps({'data': self.t_arr[url]})
except AttributeError:
self.t_arr = {}
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data,"html.parser")
table = soup.find('div',{'id':'SMS'})
table2 = table.find('table',{'class':'table'})
print(table2)
s=""
detailtext = table2.findAll('div',{'class':'detailtext'})
for det in detailtext:
details_array.append(det.text)
smalldetails = table2.findAll('div',{'style':'padding-top:5px'})
price_cells = table.findAll('td', {'class': 'pricecell'})
for price_cell in price_cells:
price_cell_array.append(price_cell.text)
for i in range(len(details_array)):
d_arr = {}
d_arr['detail']=details_array[i]
tempnew = price_cell_array[i].split('\n')
d_arr['price'] = tempnew[1]
d_arr['validity'] = tempnew[3]
# global list
lst.append(d_arr)
self.t_arr[url] = lst
return json.dumps({'data': self.t_arr[url]})
if __name__ == '__main__':
''' Setting up the Server with Specified Configuration'''
cherrypy.config.update({'server.socket_host': '0.0.0.0',})
cherrypy.config.update({'server.socket_port': int(os.environ.get('PORT', '5000')),})
cherrypy.quickstart(Server())
나는 그것이 작동 recharge_list
내 서버를 실행할 때 문제가있다,하지만 내가 터미널에서 내 서버를 종료해야 서버를 다시 시작하여 sms_list
기능을 실행하십시오.
Server
클래스로 생성 된 객체는 처음 호출 된 함수 만 실행할 수 있습니다.
코드를 편집하여 서버를 종료하지 않고 함수를 실행할 수 있도록해야합니까?
"* recharge_list' *를 사용하여 서버를 실행한다는 것은 무엇을 의미합니까? 정확히 어떤 행동을 취하고 어떤 결과를 관찰합니까? –
http : // localhost : 5000/recharge_list /가 기본 url이고 airtel/karnataka가 인수 인 firefox http : // localhost : 5000/recharge_list/airtel/karnataka에서 URL을 호출합니다. – penta
그런 다음 어떻게됩니까? 그 결과가 기대 되는가? 오류 메시지가 생성됩니까? http : // localhost : 5000/sms_list next를 방문하십니까? 서버를 종료해야한다고 생각하는 이유는 무엇입니까? –