title: Decoding Class names on facebook through Selenium
body: <p>I noticed that facebook has some weird class names that look computer generated. What I don't know is if these classes are at least constant over time or they change in some time interval? Maybe someone who has experience with that can answer. Only thing I can see is that when I exit Chrome and open it again it is still the same, so at least they don't change every browser session.</p>
  
  <p>So I'd guess the best way to go about scraping facebook would be to use some elements in user interface and assume structure is always the same, like for example to get address from About section something like this:</p>
  
  <pre><code>from selenium import webdriver
  driver = webdriver.Chrome("C:/chromedriver.exe")
  
  driver.get("https://www.facebook.com/pg/Burma-Superstar-620442791345784/about/?ref=page_internal")
  # wait some time
  address_elements = driver.find_elements_by_xpath("//span[text()='FIND US']/../following-sibling::div//button[text()='Get Directions']/../../preceding-sibling::div[1]/div/span")
  for item in address_elements:
      print item.text
  </code></pre>