facebook_profile_scraper 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c4e62ff516ff41217241e4633bbc186083ad3f7
4
- data.tar.gz: 98b762dcbe415cfe865df7384700b8cbb3dfc48d
3
+ metadata.gz: 1229b33954340cb2da8f823ae23be3d7eb4c1b82
4
+ data.tar.gz: 2b5fcaa05f5348482dd75bf5165959198d43125f
5
5
  SHA512:
6
- metadata.gz: 56458fb203a44aecd9610030e9b5ddb86536b503f33f613f975e672c6162416a11c6e4b6b9a00ca14576fa25109cef900d70fce27684b2d406c9125c06815804
7
- data.tar.gz: 8d18c66ad5107f7ec47de168f821571962ee3813789ad7da8f41bc99c31a3cd9ef28c87e511adeed0cb9d1c24116b4d0b717cd73d2170c8af1f93b0399c1a176
6
+ metadata.gz: 3e17a8c1df801597ad7f24845591c767b014dcca4eb600a1128268d720a3d3e730edb346d7e345dbda130974bd9ad92a2b76a4ab67c71958ce2621080ae295f2
7
+ data.tar.gz: d2b7f554a4a5134db8776ee1b14052da5ab094e0f5f32c3bf7929958dde2ac0af9141ed253840972081b0a732d0111e435b73bd6c0f7380fa7f06bfe53b5a4f9
@@ -50,26 +50,17 @@ module FacebookProfileScraper
50
50
  end
51
51
 
52
52
  def download_photo
53
- tries = 0
53
+ find('.fbPhotoSnowliftDropdownButton').click
54
54
 
55
- # TODO(maros): Use something like `wait_for` instead.
56
- loop do
57
- find('.fbPhotoSnowliftDropdownButton').click
58
- begin
59
- # This will occur if the image can't be downloaded.
60
- # TODO(maros): Resort to scraping the smaller res image instead.
61
- if tries > 3
62
- break
63
- end
64
-
65
- elem = find('a[data-action-type="download_photo"]', visible: true)
66
- rescue Capybara::ElementNotFound
67
- tries += 1
68
- sleep 1
69
- else
70
- elem.click
71
- break
72
- end
55
+ begin
56
+ find('a[data-action-type="download_photo"]', visible: true).click
57
+ rescue Capybara::ElementNotFound
58
+ # TODO(maros): Is there a download method in Capybara `chromedriver`?
59
+ execute_script("
60
+ link = document.createElement('a');
61
+ link.href = document.querySelector('.spotlight').src;
62
+ link.setAttribute('download', 'download');
63
+ link.click();")
73
64
  end
74
65
  end
75
66
 
@@ -101,7 +92,14 @@ module FacebookProfileScraper
101
92
  photo_links.first.click
102
93
  photo_links.length.times do
103
94
  download_photo
104
- find('.snowliftPager.next').click
95
+
96
+ begin
97
+ find('.snowliftPager.next').click
98
+
99
+ # If the photo album has only one image, this element won't exist.
100
+ rescue Selenium::WebDriver::Error::ElementNotVisibleError
101
+ break
102
+ end
105
103
  end
106
104
 
107
105
  # Add directory name for album.
@@ -1,3 +1,3 @@
1
1
  module FacebookProfileScraper
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebook_profile_scraper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maros Hluska
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-25 00:00:00.000000000 Z
11
+ date: 2016-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver