Jan-30-2019, 10:15 PM
(This post was last modified: Jan-30-2019, 10:15 PM by Archangelos.)
I made an exe file and I got the error message of the picture above. The .py file works.
The primary procedure connects to a professional satellite receiver's web interface and gets the alarmlog html page. I save the page, then I filter it in order to keep only the messages I am interested in.
The primary procedure is called 17 times (we have 17 satellite receivers of the same model).
I have to warn you, I am not expert in coding.
There are many records in each receiver, I had to increase the recursive limit from 1.000 to 5.000.
The primary procedure connects to a professional satellite receiver's web interface and gets the alarmlog html page. I save the page, then I filter it in order to keep only the messages I am interested in.
The primary procedure is called 17 times (we have 17 satellite receivers of the same model).
I have to warn you, I am not expert in coding.
There are many records in each receiver, I had to increase the recursive limit from 1.000 to 5.000.
#Newtec scrapping #Fourth code, 16/01/2019 import win32api#d = win32api.GetVolumeInformation("C:\\") import urllib import urllib.request from bs4 import BeautifulSoup import os import sys sys.setrecursionlimit(5000) OutFileName="out0002.txt" NeedSaveFile=False def make_soup(url): thepage = urllib.request.urlopen(url) soupdata = BeautifulSoup(thepage,"html.parser") return soupdata def inplace_change(filename, old_string, new_string): # Safely read the input filename using 'with' with open(filename) as f: s = f.read() if old_string not in s: #print ('"{old_string}" not found in {filename}.'.format(**locals())) return with open(filename, 'w') as f: print ('Changing "{old_string}" to "{new_string}" in {filename}'.format(**locals())) s = s.replace(old_string, new_string) f.write(s) def PrimaryScrappingProcedure(IRDip,IRDlocation,IRDcarrier,IRDfilename,IRD_ID): AddressLog="http://" + IRDip + "/alarmlog.html" soup = make_soup(AddressLog) #I had some issues with scrapping directly from the URL #First save in file and then scrape the file html = soup.prettify() #bs is your BeautifulSoup object FullIRDfilename = 'Full_' + IRDfilename with open(FullIRDfilename,"w") as out: for i in range(0, len(html)): try: out.write(html[i]) except Exception: 1+1 inplace_change(FullIRDfilename,chr(10),"") inplace_change(FullIRDfilename,"<html> <head> <title> ALARMLOG </title> </head> <body> <pre> <br/>","") inplace_change(FullIRDfilename,"Start ","\nStart ") inplace_change(FullIRDfilename,"Stop ","\nStop ") inplace_change(FullIRDfilename,"<span style=\"color:#2E2EFE\">","") inplace_change(FullIRDfilename,"<span style=\"color:#088A08\">","") inplace_change(FullIRDfilename,"<span style=\"color:#D2000E\">","") inplace_change(FullIRDfilename,"<font color=\"black\">","") inplace_change(FullIRDfilename,"Device reset flag ","Device reset flag") inplace_change(FullIRDfilename,"ALARM Reference clock ","ALARM Reference clock") inplace_change(FullIRDfilename,"INFO System Started ","INFO System Started") inplace_change(FullIRDfilename,"ALARM Reference clock ","ALARM Reference clock") inplace_change(FullIRDfilename,"ALARM Interface ","ALARM Interface") inplace_change(FullIRDfilename,"Demod BB sync ","Demod BB sync") inplace_change(FullIRDfilename,"ALARM Demod PL sync ","ALARM Demod PL sync") inplace_change(FullIRDfilename,"ALARM Demod lock ","ALARM Demod lock") inplace_change(FullIRDfilename,"","") inplace_change(FullIRDfilename,"</pre>","") inplace_change(FullIRDfilename,"</pre","") inplace_change(FullIRDfilename,"<br/>","") inplace_change(FullIRDfilename,"> </body>","") inplace_change(FullIRDfilename,"</span>","") inplace_change(FullIRDfilename,"</font>","") inplace_change(FullIRDfilename,"</html> ","") inplace_change(FullIRDfilename,"################### CURRENT POSITION ###############","") UsefulLogPhrases = ['ALARM Demod lock'] #Example['abc', 'def', 'ghi', 'jkl'] with open(FullIRDfilename) as FirstFile, open('DemodOnly_' + IRDfilename, 'w') as SecondFile:#Code taken from: https://stackoverflow.com/questions/11968998/remove-lines-that-contain-certain-string for line in FirstFile: Acceptable = False for word in UsefulLogPhrases: if word in line: Acceptable = True if Acceptable == True: prosorino= IRDlocation + ', ' + IRDcarrier + ', ' + line SecondFile.write(prosorino) ################################################## ### def PrimaryScrappingProcedure Ends here ### ################################################## #Main starts here d = win32api.GetVolumeInformation("C:\\") if d[1] ==477085405: PrimaryScrappingProcedure("172.18.0.100","KTZ","tp55","tp55_KTZ.txt","KTZ_tp55") PrimaryScrappingProcedure("172.18.0.101","KTZ","tp73","tp73_KTZ.txt","KTZ_tp73") PrimaryScrappingProcedure("172.18.0.102","KTZ","tp61","tp61_KTZ.txt","KTZ_tp61") PrimaryScrappingProcedure("172.18.0.103","KTZ","tp71","tp71_KTZ.txt","KTZ_tp71") PrimaryScrappingProcedure("172.18.0.104","KTZ","SkyIT","SkyIT_KTZ.txt","KTZ_SkyIT") PrimaryScrappingProcedure("172.18.0.105","KTZ","Globe","Globe_KTZ.txt","KTZ_Globe") PrimaryScrappingProcedure("172.18.0.110","Thess","tp55","tp55_Thess.txt","Thess_tp55") PrimaryScrappingProcedure("172.18.0.111","Thess","tp73","tp73_Thess.txt","Thess_tp73") PrimaryScrappingProcedure("172.18.0.112","Thess","tp61","tp61_Thess.txt","Thess_tp61") PrimaryScrappingProcedure("172.18.0.113","Thess","tp71","tp71_Thess.txt","Thess_tp71") PrimaryScrappingProcedure("172.18.0.114","Thess","SkyIT","SkyIT_Thess.txt","Thess_SkyIT") PrimaryScrappingProcedure("172.18.0.115","Thess","Globe","Globe_Thess.txt","Thess_Globe") PrimaryScrappingProcedure("172.18.0.120","Hera","tp55","tp55_Hera.txt","Hera_tp55") PrimaryScrappingProcedure("172.18.0.121","Hera","tp73","tp73_Hera.txt","Hera_tp73") PrimaryScrappingProcedure("172.18.0.122","Hera","tp61","tp61_Hera.txt","Hera_tp61") PrimaryScrappingProcedure("172.18.0.123","Hera","tp71","tp71_Hera.txt","Hera_tp71") PrimaryScrappingProcedure("172.18.0.124","Hera","SkyIT","SkyIT_Hera.txt","Hera_SkyIT") else: print (d[1])