def get(url, filename_prefix='result'): doc = Documentation() # ~~~~~~~~~~~~~~~ Code serveur et réponse HTTP ~~~~~~~~~~~~~~~ # result = getHTTP(url) with open('./results/' + filename_prefix + '_serverCode.html', 'wb') as f: f.write(result['code_serveur'].encode( 'utf-8')) #écriture du résulat dans un fichier #documentation requests: doc.info['requests'] = [] doc.info['requests'].append(result['info']) with open('./results/' + filename_prefix + '_documentation.json', 'wb') as f: f.write(str(doc).encode('utf-8'))
def getURL(url, headers=None, tor=False, filename_prefix=None, path="./"): '''Fonction pour l'exemple qui écris dans des fichier la trace Web, le code serveur et la documentation''' if filename_prefix == None: domain = re.search("//([^/]+)/", url) filename_prefix = path + domain[1] else: filename_prefix = "gethttp" # ~~~~~~~~~~~~~ Requests - script http_requests.py ~~~~~~~~~~~~~~~ # result = getHTTP(url, headers, tor) with open(filename_prefix + '_serverCode.html', 'wb') as f: #écriture du résulat dans un fichier f.write(result['code_serveur'].encode('utf-8')) # ~~~~~~~~~~~~~ Documentation - script documentation.py ~~~~~~~~~~ # doc = Documentation(tor=tor) doc.info = result[ 'info'] #les infos venant du module http_requests seulement au moment de faire la request, il faut les ajouter with open(filename_prefix + '_documentation.json', 'wb') as f: #écriture du résulat dans un fichier f.write(str(doc).encode('utf-8'))
info = browser.get(url) browser.driver.execute_script( "window.scrollTo(0, window.innerHeight);" ) #window.innerHeight retourne la hauteur de la fenêtre time.sleep(5) #attendre 5 sec browser.clientCode('./results/' + filename_prefix + '_clientCode.html') browser.screenshot('./results/' + filename_prefix + '_screenshot.png', width=1080) #documentation selenium: doc.info['selenium'] = [] info['actions'].append( 'driver.execute_script("window.scrollTo(0, window.innerHeight);")') doc.info['selenium'].append(info) # ~~~~~~~~~~~~~~~ Code serveur et réponse HTTP ~~~~~~~~~~~~~~~ # result = getHTTP(url, tor=tor) with open('./results/' + filename_prefix + '_serverCode.html', 'wb') as f: f.write(result['code_serveur'].encode( 'utf-8')) #écriture du résulat dans un fichier #documentation requests: doc.info['requests'] = [] doc.info['requests'].append(result['info']) # ~~~~~~~~~~~~~~~ Documentation - enregistrement ~~~~~~~~~~~~~~~ # with open('./results/' + filename_prefix + '_documentation.json', 'wb') as f: f.write(str(doc).encode('utf-8')) # ~~~~~~~~~~~~~~~ Fermeture du port de Tor, si besoin ~~~~~~~~~~~~~~~ # if tor: tor_process.kill()
#!/usr/bin/env python # coding=utf-8 # author: T. Pineau # creation: 06.10.2020 from ressources.http_requests import getHTTP #fichier http_requests.py qui se trouve dans le dossier ressources from ressources.db import session, insertURL #fichier db.py qui se trouve dans le dossier ressources import lxml.html #Page anibis qui nous permet de récupérer les URL des annonces base_url = 'https://www.anibis.ch' url = "https://www.anibis.ch/fr/c/bijouterie-horlogerie-pierres-precieuses/diamant-diamant-brut" result = getHTTP(url) with open('./results/sources_url/anibis.html', 'wb') as f: f.write(result['code_serveur'].encode('utf-8')) #Parsing pour récupérer les URL pour l'étape de collecte html = lxml.html.parse('./results/sources_url/anibis.html').getroot() liste = html.xpath('//article/a/@href') #les liens des annonces for i in liste: insertURL(session, base_url + i)
#Accès à la page voulue info = friends(browser, url) doc.info['selenium'].append(info) browser.clientCode('./results/'+filename_prefix+'_clientCode.html') browser.screenshot('./results/'+filename_prefix+'_screenshot.png', width=1080) # ~~~~~~~~~~~~~~~ Code serveur et réponse HTTP ~~~~~~~~~~~~~~~ # headers = { 'user-agent': browser.driver.execute_script("return navigator.userAgent"), #utilisé le même useragent que selenium 'referer': 'https://www.facebook.com/', #Il faut indiquer qu'on vient d'une URL du hostname 'cookie': '' } #Chargement des cookies for cookie in pickle.load(open('./results/facebook_cookies.pkl','rb')): headers['cookie'] += cookie['name'] + '=' + cookie['value'] + '; ' result = getHTTP(url, headers=headers) with open('./results/'+filename_prefix+'_serverCode.html', 'wb') as f: #écriture du résulat dans un fichier f.write(result['code_serveur'].encode('utf-8')) #documentation requests: doc.info['requests'] = [] doc.info['requests'].append(result['info']) # ~~~~~~~~~~~~~~~ Documentation - enregistrement ~~~~~~~~~~~~~~~ # with open('./results/'+filename_prefix+'_documentation.json', 'wb') as f: f.write(str(doc).encode('utf-8'))