from __future__ import print_function from selenium import webdriver from selenium.webdriver.firefox.options import Options from pyvirtualdisplay import Display from time import sleep import sys import json import os from bs4 import BeautifulSoup class Vkontaktefinder(object): timeout = 10 def __init__(self,showbrowser): display = Display(visible=0, size=(1600, 1024)) display.start() if not showbrowser: os.environ['MOZ_HEADLESS'] = '1' firefoxprofile = webdriver.FirefoxProfile() firefoxprofile.set_preference("permissions.default.desktop-notification", 1) firefoxprofile.set_preference("dom.webnotifications.enabled", 1) firefoxprofile.set_preference("dom.push.enabled", 1) self.driver = webdriver.Firefox(firefox_profile=firefoxprofile) self.driver.implicitly_wait(15) self.driver.delete_all_cookies() def doLogin(self,username,password): self.driver.get("https://www.vk.com/login") self.driver.execute_script('localStorage.clear();') if(self.driver.title.encode('ascii','replace').startswith(bytes("Log in", 'utf-8'))): print("\n[+] VKontakte Login Page loaded successfully [+]") vkUsername = self.driver.find_element_by_id("email") vkUsername.send_keys(username) vkPassword = self.driver.find_element_by_id("pass") vkPassword.send_keys(password) self.driver.find_element_by_id("login_button").click() sleep(10) if(self.driver.title.encode('ascii','replace').startswith(bytes("Log in", 'utf-8')) == False): print("[+] Vkontakte Login Success [+]\n") else: print("[-] Vkontakte Login Failed [-]\n") def getVkontakteProfiles(self,first_name,last_name): #try: url = "https://vk.com/search?c%5Bq%5D=" + first_name + "%20" + last_name + "&c%5Bsection%5D=auto" self.driver.get(url) sleep(3) searchresponse = self.driver.page_source.encode('utf-8') soupParser = BeautifulSoup(searchresponse, 'html.parser') picturelist = [] for element in soupParser.find_all('div', {'class': 'people_row'}): # "people_row search_row clear_fix" try: link = element.find('a')['href'] profilepic = element.find('img')['src'] picturelist.append(["https://vk.com" + link,profilepic,1.0]) except: continue return picturelist #except Exception as e: # picturelist = [] # print "Error" # print e # return picturelist def kill(self): self.driver.quit() ''' def getVkontakteProfiles(self,first_name,last_name): url = "https://www.vkontakte.com/search/people/?q=" + first_name + "%20" + last_name self.driver.get(url) sleep(3) searchresponse = self.driver.page_source.encode('utf-8') soupParser = BeautifulSoup(searchresponse, 'html.parser') picturelist = [] for element in soupParser.find_all('div', {'class': '_52eh _ajx'}): link = element.find('a')['href'] picturelist.append([link,1.0]) return picturelist def getProfilePicture(self, profilelink): try: self.driver.get(profilelink) sleep(3) profileresponse = self.driver.page_source.encode('utf-8') soupParser = BeautifulSoup(profileresponse, 'html.parser') linktobigpic = "" for element in soupParser.find_all('div', {'class': 'photoContainer'}): linktobigpic = element.find('a')['href'] #if linktobigpic.startswith("/") #return "" self.driver.get(linktobigpic) sleep(3) bigpicresponse = self.driver.page_source.encode('utf-8') soupParser = BeautifulSoup(bigpicresponse, 'html.parser') image_link = "" for element in soupParser.find_all('div', {'class': '_2-sx'}): image_link = element.find('img')['src'] return image_link except: return "" '''