I am just beginner in Python, so I don't know much about it.
For my research project I have to get the friend list of users(already defined) from Facebook and Twitter by crawling webpages by using Python.
I don't how to start like open account then go to friend, save its webpage, then go to another webpage and do the same. Can anyone please tell me how to do it?
Use the Google API.
Or use this link for Code
You May Can Use this Code of Python For that task get from the upper link...
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class FacebookCrawler:
LOGIN_URL = 'https://www.facebook.com/login.php?login_attempt=1&lwv=111'
def __init__(self, login, password):
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
self.driver = webdriver.Chrome(chrome_options=chrome_options)
self.wait = WebDriverWait(self.driver, 10)
self.login(login, password)
def login(self, login, password):
self.driver.get(self.LOGIN_URL)
# wait for the login page to load
self.wait.until(EC.visibility_of_element_located((By.ID, "email")))
self.driver.find_element_by_id('email').send_keys(login)
self.driver.find_element_by_id('pass').send_keys(password)
self.driver.find_element_by_id('loginbutton').click()
# wait for the main page to load
self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a#findFriendsNav")))
def _get_friends_list(self):
return self.driver.find_elements_by_css_selector(".friendBrowserNameTitle > a")
def get_friends(self):
# navigate to "friends" page
self.driver.find_element_by_css_selector("a#findFriendsNav").click()
# continuous scroll until no more new friends loaded
num_of_loaded_friends = len(self._get_friends_list())
while True:
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
self.wait.until(lambda driver: len(self._get_friends_list()) > num_of_loaded_friends)
num_of_loaded_friends = len(self._get_friends_list())
except TimeoutException:
break # no more friends loaded
return [friend.text for friend in self._get_friends_list()]
if __name__ == '__main__':
crawler = FacebookCrawler(login='login', password='password')
for friend in crawler.get_friends():
print(friend)