adops_report_scrapper 0.2.28 → 0.2.29
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 +4 -4
- data/CHANGELOG +3 -0
- data/lib/adops_report_scrapper/sovrn_client.rb +20 -8
- data/lib/adops_report_scrapper/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18fe8a9e5d0db433253503138f2d03cd1adee71b
|
4
|
+
data.tar.gz: 73d73a41e74cc15520aae6427901fecdbbae1f73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4fc3188f3b828f25b35217569a71e1f368df3f18acfc896f5bd3098889c6b4d25ca38dd31ab998b1acf2eb616e2e78cce6ae989e94522760ac28ebe7c1daec7
|
7
|
+
data.tar.gz: 15ff71dd798cd90ee71e83fe632d8c95af18ca418dc750b417090282666af8909fbb4aba5382f807a910dc39fd428c47e86bcb4ecf02d637ca871aa362573d9a
|
data/CHANGELOG
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'date'
|
2
2
|
require_relative 'base_client'
|
3
|
+
require 'selenium-webdriver'
|
3
4
|
|
4
5
|
class AdopsReportScrapper::SovrnClient < AdopsReportScrapper::BaseClient
|
5
6
|
def date_supported?(date = nil)
|
@@ -8,11 +9,24 @@ class AdopsReportScrapper::SovrnClient < AdopsReportScrapper::BaseClient
|
|
8
9
|
false
|
9
10
|
end
|
10
11
|
|
12
|
+
def init_client
|
13
|
+
Capybara.register_driver :selenium do |app|
|
14
|
+
profile = Selenium::WebDriver::Firefox::Profile.new
|
15
|
+
@download_dir = '/tmp/sovrn'
|
16
|
+
profile['browser.download.dir'] = @download_dir
|
17
|
+
clean_up_download_dir
|
18
|
+
profile['browser.download.folderList'] = 2
|
19
|
+
profile['browser.helperApps.neverAsk.saveToDisk'] = 'application/octet-stream'
|
20
|
+
Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
|
21
|
+
end
|
22
|
+
@client = Capybara::Session.new(:selenium)
|
23
|
+
end
|
24
|
+
|
11
25
|
private
|
12
26
|
|
13
27
|
def login
|
14
28
|
@client.visit 'https://meridian.sovrn.com/#welcome'
|
15
|
-
sleep
|
29
|
+
sleep 1
|
16
30
|
if @client.find_all(:css, '#user-menu-trigger').count > 0
|
17
31
|
@client.find_all(:css, '#user-menu-trigger').first.click
|
18
32
|
sleep 1
|
@@ -40,7 +54,6 @@ class AdopsReportScrapper::SovrnClient < AdopsReportScrapper::BaseClient
|
|
40
54
|
|
41
55
|
def request_report
|
42
56
|
@client.visit 'https://meridian.sovrn.com/#account/my_downloads'
|
43
|
-
@client.save_screenshot
|
44
57
|
sleep 5
|
45
58
|
if @client.find_all(:xpath, '//input[@value="domestic_and_international"]').count == 0
|
46
59
|
login
|
@@ -60,15 +73,14 @@ class AdopsReportScrapper::SovrnClient < AdopsReportScrapper::BaseClient
|
|
60
73
|
@client.find_all(:xpath, '//button[text()=" Download "]').first.click
|
61
74
|
|
62
75
|
sleep 2
|
63
|
-
|
64
|
-
url = @client.driver.network_traffic[-1].url
|
65
|
-
headers = @client.driver.network_traffic[-1].headers
|
66
|
-
|
67
|
-
@response = HTTPClient.get url, header: headers.map{ |header| [header['name'], header['value']] }.to_h
|
68
76
|
end
|
69
77
|
|
70
78
|
def extract_data_from_report
|
71
|
-
rows = CSV.parse @
|
79
|
+
rows = CSV.parse File.read("#{@download_dir}/adstats_all_traffic.csv")
|
72
80
|
@data = rows[6..-1]
|
73
81
|
end
|
82
|
+
|
83
|
+
def clean_up_download_dir
|
84
|
+
FileUtils.rm_rf(Dir.glob("#{@download_dir}/*"))
|
85
|
+
end
|
74
86
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adops_report_scrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stayman Hou
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|