1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #-*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import BeautifulSoup, urlparse, os, time, random def getPeopleLinks(page): links = [] for link in page.findAll( 'a' ): url = link.get( 'href' ) if url: if '/profile.php?id=' in url: links.append(url) return links def getID(url): pUrl = urlparse.urlparse(url) return urlparse.parse_qs(pUrl.query)[ 'id' ][ 0 ] def view_friend(): print "[+] 친구목록 탐색중" private_page = driver.find_element_by_class_name( 'fbxWelcomeBoxSmallRow' ) ActionChains(driver).move_to_element(private_page).click().perform() friend_page = driver.find_element_by_class_name( '_39g5' ) ActionChains(driver).move_to_element(friend_page).click().perform() def login_web(): facebook_id = driver.find_element_by_name( "email" ) facebook_pw = driver.find_element_by_name( "pass" ) facebook_id.clear() facebook_pw.clear() facebook_id.send_keys("") facebook_pw.send_keys("") facebook_pw.send_keys(Keys.RETURN) print "[+] 로그인 성공! 봇을 시작합니다." def write_timeline(): facebook_write = driver.find_element_by_name( "xhpc_message" ) facebook_write.clear() facebook_write.send_keys( "`1234567890~!@#$%^&*()_+|" ) if facebook_write.send_keys(Keys.RETURN) = = None : print "[+] 글 작성 완료!" def viewbot(driver): visited = {} pList = [ ] count = 0 # while True: for i in range ( 10 ): # sleep to make sure everything loads. # add random to make us look human. #time.sleep(random.uniform(3.5,6.9)) page = BeautifulSoup.BeautifulSoup(driver.page_source) people = getPeopleLinks(page) if people: for person in people: ID = getID(person) if ID not in visited: pList.append(person) visited[ ID ] = 1 if pList: #If there is people to look at, then look at them person = pList.pop() driver.get(person) count + = 1 print "[+]" + driver.title[ 3 : len (driver.title)] + " Visited! \n(" \ + str (count) + "/" + str ( len (pList)) + ") Visited/Queue" driver.back() def Main(): os.system( 'clear' ) print """ =====================**************************====================== =====================Facebook Friends Search Bot_made by SSo=========== =====================**************************====================== """ global driver driver = webdriver.Firefox() driver.get(web) print "[+] 웹 사이트 접근 성공(" + web + ")" assert "Facebook" in driver.title login_web() driver.implicitly_wait( 10 ) view_friend() viewbot(driver) assert "No results found." not in driver.page_source print "[+] 자동탐색기 종료" driver.close() if __name__ = = "__main__" : Main() |
'Language > python' 카테고리의 다른 글
python에서 bash 명령 (0) | 2017.05.24 |
---|---|
[라이브러리] pwntools - CTF toolkit (0) | 2016.08.04 |
Python String maketrans() Method (0) | 2016.07.19 |
파이썬으로 웹 브라우저 실행하기 (0) | 2016.07.10 |
정규표현식 (Regular Expression) (0) | 2016.06.13 |