Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.common.by import By
- from selenium.common.exceptions import TimeoutException
- from bs4 import BeautifulSoup
- import urllib.request
- import math
- # defining variables within the facebook url
- class FacebookScraper(object):
- def __init__(self, browser):
- self.browser = browser
- def log_into_fb(self, usernameStr, passwordStr):
- self.browser.get("https://www.facebook.com")
- # fill in username
- username = browser.find_element_by_id("email")
- username.send_keys(usernameStr)
- # fill in password
- password = browser.find_element_by_id("pass")
- password.send_keys(passwordStr)
- # sign in to facebook
- signInButton = browser.find_element_by_id("loginbutton")
- signInButton.click()
- # navigating to the facebook url
- def load_facebook_url(self, query, location, max_price):
- try:
- # defining the facebook url as a whole
- url = "https://wwww.facebook.com/marketplace/" + location + "/search?query=" + query + "&maxPrice=" + max_price
- self.browser.get(url)
- element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "facebook")),
- print("Page is ready"))
- except TimeoutException:
- print("Loading took too much time")
- # extracting information from facebook
- def extract_post_titles(self):
- all_posts = self.browser.find_elements_by_class_name("_1oem")
- post_title_list = []
- for post in all_posts:
- print(post.text)
- post_title_list.append(post.text)
- return post_title_list
- # def extract_post_urls(self):
- # url_list = []
- # html_page = urllib.request.urlopen(self.url)
- # soup = BeautifulSoup(html_page, "html.parser")
- # for link in soup.findAll("a", {"class": "result-title hdrlnk"}):
- # print(link)
- # user input variables
- location = "nyc"
- max_price = "0"
- # radius = "2"
- query = "books"
- # Browser
- browser = webdriver.Firefox(
- executable_path=r'C:\Users\Alex\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.7\geckodriver.exe'
- )
- # defining log in and password variables
- usernameStr = "alexb2123@gmail.com"
- passwordStr = "2123Constantine"
- scraper = FacebookScraper(browser)
- scraper.log_into_fb(usernameStr, passwordStr)
- scraper.load_facebook_url(query, location, max_price)
- # scraper.extract_post_titles()
- # scraper.extract_post_urls()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement