Skip to content

Instantly share code, notes, and snippets.

@agermanidis
Created March 19, 2017 10:25
Show Gist options
  • Save agermanidis/1cd4a3239c37fe785a9c2dffd2e6ea24 to your computer and use it in GitHub Desktop.
Save agermanidis/1cd4a3239c37fe785a9c2dffd2e6ea24 to your computer and use it in GitHub Desktop.
Scrape your Ad Preferences on FB
import sys
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-notifications")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.facebook.com")
while 'Log In' in driver.title:
pass
driver.get("https://www.facebook.com/ads/preferences")
preferences = []
time.sleep(1)
category_buttons = driver.find_elements_by_css_selector('._2jom')[:-1]
for but in category_buttons:
more_button = driver.find_elements_by_css_selector('._2jod')[0]
hover = ActionChains(driver).move_to_element(more_button)
hover.perform()
but.click()
while len(driver.find_elements_by_css_selector('._45yr')):
see_more = driver.find_elements_by_css_selector('._45yr')[0]
see_more.click()
els = driver.find_elements_by_css_selector("._2b2j")
for el in els:
preferences.append(el.text)
driver.execute_script("window.scrollTo(0, 0);")
driver.close()
print(preferences)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment