Advertisement
Guest User

facebook fail

a guest
Nov 16th, 2018
913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.support.ui import WebDriverWait
  3. from selenium.webdriver.support import expected_conditions as EC
  4. from selenium.webdriver.common.by import By
  5. from selenium.common.exceptions import TimeoutException
  6.  
  7. from bs4 import BeautifulSoup
  8. import urllib.request
  9. import math
  10.  
  11.  
  12. # defining variables within the facebook url
  13. class FacebookScraper(object):
  14. def __init__(self, browser):
  15. self.browser = browser
  16.  
  17. def log_into_fb(self, usernameStr, passwordStr):
  18. self.browser.get("https://www.facebook.com")
  19. # fill in username
  20. username = browser.find_element_by_id("email")
  21. username.send_keys(usernameStr)
  22.  
  23. # fill in password
  24. password = browser.find_element_by_id("pass")
  25. password.send_keys(passwordStr)
  26.  
  27. # sign in to facebook
  28. signInButton = browser.find_element_by_id("loginbutton")
  29. signInButton.click()
  30.  
  31. # navigating to the facebook url
  32. def load_facebook_url(self, query, location, max_price):
  33.  
  34. try:
  35. # defining the facebook url as a whole
  36. url = "https://wwww.facebook.com/marketplace/" + location + "/search?query=" + query + "&maxPrice=" + max_price
  37. self.browser.get(url)
  38. element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "facebook")),
  39. print("Page is ready"))
  40. except TimeoutException:
  41. print("Loading took too much time")
  42.  
  43.  
  44. # extracting information from facebook
  45. def extract_post_titles(self):
  46.  
  47. all_posts = self.browser.find_elements_by_class_name("_1oem")
  48. post_title_list = []
  49. for post in all_posts:
  50. print(post.text)
  51. post_title_list.append(post.text)
  52. return post_title_list
  53.  
  54. # def extract_post_urls(self):
  55. # url_list = []
  56. # html_page = urllib.request.urlopen(self.url)
  57. # soup = BeautifulSoup(html_page, "html.parser")
  58. # for link in soup.findAll("a", {"class": "result-title hdrlnk"}):
  59. # print(link)
  60.  
  61.  
  62. # user input variables
  63. location = "nyc"
  64. max_price = "0"
  65. # radius = "2"
  66. query = "books"
  67.  
  68. # Browser
  69. browser = webdriver.Firefox(
  70. executable_path=r'C:\Users\Alex\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.7\geckodriver.exe'
  71. )
  72. # defining log in and password variables
  73. usernameStr = "alexb2123@gmail.com"
  74. passwordStr = "2123Constantine"
  75. scraper = FacebookScraper(browser)
  76. scraper.log_into_fb(usernameStr, passwordStr)
  77. scraper.load_facebook_url(query, location, max_price)
  78. # scraper.extract_post_titles()
  79. # scraper.extract_post_urls()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement