129 lines
4.9 KiB
Python
129 lines
4.9 KiB
Python
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
import time
|
|
import requests
|
|
|
|
hostName = "localhost"
|
|
serverPort = 9999
|
|
|
|
class MyServer(BaseHTTPRequestHandler):
|
|
def do_GET(self):
|
|
|
|
print(self.path)
|
|
if(self.path.startswith("/?ean=")):
|
|
print("EAN request")
|
|
|
|
eanCode = self.path.split("=")[1]
|
|
print(eanCode)
|
|
url = 'https://www.ofdb.de/view.php?page=suchergebnis'
|
|
myobj = {'SText': eanCode, 'Kat':'EAN'} #'4030521376748'
|
|
|
|
x = requests.post(url, data = myobj)
|
|
tme = x.text
|
|
try:
|
|
#tme = tme.split('<div data-nx-container="inread"><!-- INREAD --></div>')[1]
|
|
#print(tme)
|
|
tme = tme.split('img src="https://www.ofdb.de/images/shim.gif" width="1" height="10" border="0" alt=""></td>')[0]
|
|
print(tme)
|
|
tme = tme.split('<i>Vorab-Einträge:</i>')[1]
|
|
|
|
if("Keine Ergebnisse" in tme):
|
|
print("Non vorab")
|
|
tme = x.text
|
|
tme = tme.split('<div data-nx-container="inread"><!-- INREAD --></div>')[1]
|
|
print("Alive")
|
|
tme = tme.split('img src="https://www.ofdb.de/images/shim.gif" width="1" height="10" border="0" alt=""></td>')[0]
|
|
print("Alive 1")
|
|
tme = tme.split(",SHADOW,true)\"><b>")[1]
|
|
print("Alive 2")
|
|
tme = tme.split("</b></a><br>")[0]
|
|
# print(tme)
|
|
else:
|
|
print("Here")
|
|
tme = tme.split(",SHADOW,true)\"><b>")[1]
|
|
tme = tme.split("</b></a><br>")[0]
|
|
#tme = tme.split('</b></a><br>')[0]
|
|
|
|
|
|
tme = tme[:len(tme)-7]
|
|
if(tme[-5:] in [", Der", ", Die", ", Das"]):
|
|
tme = tme[-3:] + " " + tme
|
|
tme = tme[:len(tme)-5]
|
|
|
|
except IndexError as ex:
|
|
try:
|
|
tme = tme.split('img src="https://www.ofdb.de/images/shim.gif" width="1" height="10" border="0" alt=""></td>')[0]
|
|
tme = tme.split('<i>Vorab-Einträge:</i>')[0]
|
|
tme = tme.split(",SHADOW,true)\"><b>")[1]
|
|
tme = tme.split("</b></a><br>")[0]
|
|
tme = tme.split(" (20")[0]
|
|
print(tme)
|
|
print("OKAY")
|
|
except Exception as ex:
|
|
print(ex)
|
|
self.send_response(500)
|
|
self.send_header("Content-type", "text/html")
|
|
self.end_headers()
|
|
self.wfile.write(bytes("Invalid EAN", "utf-8"))
|
|
print(ex)
|
|
else:
|
|
self.send_response(200)
|
|
self.send_header("Content-type", "text/plain")
|
|
self.end_headers()
|
|
self.wfile.write(bytes(tme, "utf-8"))
|
|
else:
|
|
self.send_response(200)
|
|
self.send_header("Content-type", "text/plain")
|
|
self.end_headers()
|
|
self.wfile.write(bytes(tme, "utf-8"))
|
|
|
|
|
|
|
|
|
|
elif(self.path.startswith("/?eanMulti=")):
|
|
print("EAN request")
|
|
|
|
eanCode = self.path.split("=")[1]
|
|
print(eanCode)
|
|
url = 'https://www.ofdb.de/view.php?page=suchergebnis'
|
|
myobj = {'SText': eanCode, 'Kat':'EAN'} #'4030521376748'
|
|
|
|
x = requests.post(url, data = myobj)
|
|
tme = x.text
|
|
try:
|
|
tme = tme.split('<div data-nx-container="inread"><!-- INREAD --></div>')[1]
|
|
tme = tme.split('img src="https://www.ofdb.de/images/shim.gif" width="1" height="10" border="0" alt=""></td>')[0]
|
|
#tme = tme.split('width="120" height="168">\',SHADOW,true)"><b>')[1]
|
|
print(tme)
|
|
#tme = tme.split(',SHADOW,true)"><b>')[1]
|
|
#tme = tme.split('</b></a><br>')[0]
|
|
#tme = tme[:len(tme)-7]
|
|
except IndexError:
|
|
self.send_response(500)
|
|
self.send_header("Content-type", "text/html")
|
|
self.end_headers()
|
|
self.wfile.write(bytes("Invalid EAN", "utf-8"))
|
|
else:
|
|
self.send_response(200)
|
|
self.send_header("Content-type", "text/html")
|
|
self.end_headers()
|
|
self.wfile.write(bytes(tme, "utf-8"))
|
|
else:
|
|
self.send_response(404)
|
|
self.send_header("Content-type", "text/html")
|
|
self.end_headers()
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
webServer = HTTPServer((hostName, serverPort), MyServer)
|
|
print("Server started http://%s:%s" % (hostName, serverPort))
|
|
|
|
try:
|
|
webServer.serve_forever()
|
|
except KeyboardInterrupt:
|
|
pass
|
|
|
|
webServer.server_close()
|
|
print("Server stopped.")
|