facebook_profile_scraper 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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