Skip to content

Instantly share code, notes, and snippets.

@jpsilvashy
Created April 24, 2019 15:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpsilvashy/25ea97d20ec76551c159462e60a9f9d5 to your computer and use it in GitHub Desktop.
Save jpsilvashy/25ea97d20ec76551c159462e60a9f9d5 to your computer and use it in GitHub Desktop.
Use findmyfbid.com to get facebook ids from URLs
require 'selenium-webdriver'
module ScrapeTools
def self.connect(base_url)
loop do
# proxy
proxy = ProxyServer.get_round_robin # get a proxy that hasent been used lately
puts "[ScrapeTools] trying proxy: #{proxy.as_string}"
# profile
profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = Selenium::WebDriver::Proxy.new(ssl: proxy.as_string)
# options
options = Selenium::WebDriver::Firefox::Options.new(args: ['-headless'])
options.profile = profile
# desired_capabilities
caps = Selenium::WebDriver::Remote::Capabilities.firefox
caps['acceptInsecureCerts'] = true
# driver
driver = Selenium::WebDriver.for :firefox, options: options, desired_capabilities: caps
driver.manage.timeouts.implicit_wait = 5
driver.manage.timeouts.script_timeout = 30
driver.manage.timeouts.page_load = 30
begin
driver.get(base_url)
puts "[ScrapeTools] loaded: #{base_url}"
return driver
rescue => e
puts "[ScrapeTools] error: #{e.message}"
ensure
proxy.update_column(:last_used_at, Time.now)
end
end
end
end
module FacebookIdResolver
def self.get_facebook_id_for_url(facebook_profile_url)
driver = ScrapeTools.connect('https://findmyfbid.com/')
driver.find_element(css: 'form input.input-lg').send_keys(facebook_profile_url)
driver.find_element(css: 'form input.btn-primary').click
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.find_element(css: 'h1').text == "Success!" }
facebook_id = driver.find_element(css: '#success-wrap code').text
driver.quit
return facebook_id
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment