Path: blob/main/modules/social_medias/copainsdavant_search.py
235 views
import requests, json1from bs4 import BeautifulSoup2from modules.face_recognition import face_recon3from colorama import Fore45def check_response(url):6r = requests.get(url,allow_redirects=False)7status = r.status_code8if status == 200:9return True10else:11return None1213def copains_davant(name,pren):14headers = {15'Accept':'application/json, text/javascript, */*; q=0.01',16'X-Requested-With':'XMLHttpRequest'17}18r = requests.get(url='http://copainsdavant.linternaute.com/s/?full=&q={} {}&ty=1&xhr='.format(pren,name),headers=headers)19try:20pagephone = r.content.decode().split(',"$data":')[1].split('{"copains":')[1]21dataa = pagephone[:-2]22data = json.loads(dataa)23users_list = data['users']24user_list = []25for i in users_list:26i = str(i).strip()27if i != "0":28user_list.append(i)29new_verified = []30for i in user_list:31url = "https://copainsdavant.linternaute.com/p/{}-{}-{}".format(pren,name,i)32response_code = check_response(url)33if response_code is not None:34new_verified.append(url)3536profil_url = new_verified[0]37r = requests.get(allow_redirects=False,url='{}'.format(profil_url))38pagephone = r.content39featuresphone = "html.parser"40soup = BeautifulSoup(pagephone,featuresphone)41try:42localisation = str(soup.find('span',{'class':'locality'}).text)43naissance = str(soup.find('abbr',{'class':'bday'}).text.strip())44name_full = str(soup.find('a',{'class':'url'}).text.strip())45photo = str(soup.find('img',{'itemprop':'logo'})).split('itemprop="logo" src="')[1].split('"')[0]46locations = soup.find_all('span',{'class':'copains_career__city jCcareerTown'})47dates = soup.find_all('span',{'class':'copains_career__date jCareerDate'})4849location_list = []5051for i in range(len(locations)):52locat = locations[i].text.strip()53dat = dates[i].text.replace('maintenant','Now').strip()54data = dat+" | "+locat55if data not in location_list:56temp_list = []57for i in location_list:58if locat in i:59temp_list.append('.')60if len(temp_list) == 0:61location_list.append(data)6263if len(location_list) == 0:64location_list = None65if "/anonymousL.jpg" in photo:66photo = "None"67face_detection = None68else:69print("🧠 Face detection via CopainsDavant profile picture ...")70face_detection = face_recon.check(photo)71if face_detection is not None:72print(" ->"+Fore.GREEN+" Face successfully found ! "+Fore.RESET)73face_detection = True74card = soup.find('section',{'id':'vcard'}).text.strip()75job = "None"76nb_kids = "None"77situation_familiale = "None"78if "Situation familiale" in card:79situation_familiale = card.split('Situation familiale :')[1].split(' ')[0].strip()80situation_familiale = situation_familiale.strip()81if "Profession" in card:82job = card.split('Profession :')[1].split(' ')[0]83job = " ".join(job.split()).split(' ')[0]84if "Enfant" in card:85nb_kids = card.split("Enfants :")[1].split(" ")[0]86text = {'Face_detection':face_detection,'Other_locations':location_list,'url_full':'{}'.format(profil_url),'familial_situation':str(situation_familiale).replace('Enfants','').replace('Aucune','').strip(),'full_name':str(name_full),'born':str(naissance),'localisation':str(localisation),87"nb_enfants":str(nb_kids).strip(),"Job":str(job).strip(),'pdp':str(photo),88}89return text90except AttributeError:91return None92except IndexError:93return None949596