Skip to content

Instantly share code, notes, and snippets.

@gsscoder
Last active November 23, 2019 05:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gsscoder/3a5143e39ebb3092760719fc1c19a412 to your computer and use it in GitHub Desktop.
Save gsscoder/3a5143e39ebb3092760719fc1c19a412 to your computer and use it in GitHub Desktop.
Scrapes Facebook for 5 random persons in 5 random cities (2)
"""
fbscrap_5random-2.py:
Demonstrates facebook_snooper package (https://github.com/gsscoder/facebook-snooper/).
For version: 0.4.3
Usage: python3 fbscrap_5random-2
"""
import requests
import json
import sys
import random
import getpass
import facebook_snooper
cities_json = requests.get(
'https://raw.githubusercontent.com/gsscoder/test-data/master/largest-cities.json')
cities = json.loads(cities_json.content)
names_json = requests.get(
'https://gist.githubusercontent.com/gsscoder/e0e905fbef23376aabfa695d85d8ef5c/raw/c250e439541647e3b2125922a04e1323ae51ff7a/names.json')
names = json.loads(names_json.content)
def dump_data(fb, cities, names):
few_cities = cities[:5]
few_names = names[:5]
random.shuffle(few_cities)
random.shuffle(few_names)
for i, city in enumerate(few_cities):
print(f'{city.upper()}:')
print(f'{"=" * (len(city) + 1)}')
person = few_names[i]
query = f'{person} {city}'
results = fb.search(query)
for id, _, _ in results:
name, image_link, followers, intro = fb.profile_info(id)
print(f' {name} ({id}):')
image = f'{image_link[:60]}...' if len(image_link) > 0 else "[NO IMAGE]"
print(f' - image link: {image}')
if len(followers) > 0:
print(f' - followers: {int(followers)}:')
if len(intro) == 0:
print(' - [this profile takes care of privacy]')
else:
print(' INTRO:')
print(' =====:')
for info in intro:
print(f' - {info}')
username = input('username: ')
password = getpass.getpass()
print('Attempting connection...')
try:
with facebook_snooper.default_session() \
.log_in(username, password) as fb:
dump_data(fb, cities, names)
except Exception as err:
print(f'ERROR: {err}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment