Je suis en train d'écrire un programme python, parce que je suis paresseux, qui vérifie un site Web pour une ouverture d'emploi, j'ai été informé et renvoie tous les emplois de la page Web des entreprises.Python MD5 hachage même contenu renvoie hachage différent
Voici mon code à ce jour (oui je sais le code est jancky mais je suis juste essayer de le faire fonctionner)
import requests
from bs4 import BeautifulSoup
import sys
import os
import hashlib
reload(sys)
sys.setdefaultencoding('utf8')
res = requests.get('WEBSITE URL', verify=False)
res.raise_for_status()
filename = "JobWebsite.txt"
def StartUp():
if not os.path.isfile(filename):
try:
jobfile = open(filename, 'a')
jobfile = open(filename, 'r+')
print("[*] Succesfully Created output file")
return jobfile
except:
print("[*] Error creating output file!")
sys.exit(0)
else:
try:
jobfile = open(filename, 'r+')
print("[*] Succesfully Opened output file")
return jobfile
except:
print("[*] Error opening output file!")
sys.exit(0)
def AnyChange(htmlFile):
fileCont = htmlFile.read()
FileHash = hasher(fileCont, "File Code Hashed")
WebHash = hasher(res.text, "Webpage Code Hashed")
!!!!! Here is the Problem
print ("[*] File hash is " + str(FileHash))
print ("[*] Website hash is " + str(WebHash))
if FileHash == WebHash:
print ("[*] Jobs being read from file!")
num_of_jobs(fileCont)
else:
print("[*] Jobs being read from website!")
num_of_jobs(res.text)
deleteContent(htmlFile)
writeWebContent(htmlFile, res.text)
def hasher(content, message):
content = hashlib.md5(content.encode('utf-8'))
return content
def num_of_jobs(htmlFile):
content = BeautifulSoup(htmlFile, "html.parser")
elems = content.select('.search-result-inner')
print("[*] There are " + str(len(elems)) + " jobs available!")
def deleteContent(htmlFile):
print("[*] Deleting Contents of local file! ")
htmlFile.seek(0)
htmlFile.truncate()
def writeWebContent(htmlFile, content):
htmlFile = open(filename, 'r+')
print("[*] Writing Contents of website to file! ")
htmlFile.write(content.encode('utf-8'))
jobfile = StartUp()
AnyChange(jobfile)
Le problème que j'ai actuellement est que je Hash à la fois des sites web code html et le code html des fichiers. Cependant, les deux hachages ne correspondent pas, comme toujours, je ne suis pas sûr et je ne peux que deviner que cela pourrait être quelque chose avec le contenu étant enregistré dans un fichier. Les hash ne sont pas trop éloignés mais il provoque encore la déclaration Si à l'échec chaque fois
Breakpoint in Program with hashes
Je vois ce que vous voulez dire avec les adresses d'assemblage, je travaillais là-dessus à 1h du matin et j'ai simplement survolé ma tête. Cependant, les hachages diffèrent encore en valeur après le changement. Je vais y regarder de plus près et je rapporterai si je le répare. –