Sha256: 464d26ffa1f0c9bf071a7744113885ae7c02d2e01797bc9f47bd81750741b362
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
class IdsPlease module Grabbers class Twitter < IdsPlease::Grabbers::Base def grab_link @network_id = page_source.scan(/data-user-id="(\d+)"/).flatten.first @avatar = page_source.scan(/ProfileAvatar-image " src="([^"]+)"/).flatten.first @display_name = page_source.scan(/ProfileHeaderCard-nameLink[^>]+>([^<]+)</).flatten.first @username = page_source.scan(/<title>[^\(]+\(@([^\)]+)\)/).flatten.first @data = {} { description: page_source.scan(/ProfileHeaderCard-bio[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'), location: page_source.scan(/ProfileHeaderCard-locationText[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'), join_date: page_source.scan(/ProfileHeaderCard-joinDateText[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'), }.each do |k, v| next if v.nil? || v == '' @data[k] = CGI.unescapeHTML(v).strip end @counts = { tweets: page_source.scan(/statuses_count":(\d+),"/).flatten.first.to_i, following: page_source.scan(/friends_count":(\d+),"/).flatten.first.to_i, followers: page_source.scan(/followers_count":(\d+),"/).flatten.first.to_i, favorites: page_source.scan(/favourites_count":(\d+),"/).flatten.first.to_i, lists: page_source.scan(/listed_count":(\d+),"/).flatten.first.to_i, } self rescue => e p e return self end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ids_please-2.2.0 | lib/ids_please/grabbers/twitter.rb |