PageRankr 3.1.2 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/README.md +26 -10
- data/lib/page_rankr.rb +3 -0
- data/lib/page_rankr/backlinks/alexa.rb +4 -0
- data/lib/page_rankr/backlinks/bing.rb +4 -0
- data/lib/page_rankr/backlinks/google.rb +5 -1
- data/lib/page_rankr/backlinks/yahoo.rb +4 -0
- data/lib/page_rankr/indexes/bing.rb +4 -0
- data/lib/page_rankr/indexes/google.rb +5 -1
- data/lib/page_rankr/indexes/yahoo.rb +4 -0
- data/lib/page_rankr/proxy_services.rb +5 -0
- data/lib/page_rankr/proxy_services/random.rb +13 -0
- data/lib/page_rankr/proxy_services/round_robin.rb +16 -0
- data/lib/page_rankr/ranks.rb +0 -1
- data/lib/page_rankr/ranks/alexa_global.rb +4 -0
- data/lib/page_rankr/ranks/alexa_us.rb +4 -0
- data/lib/page_rankr/ranks/google.rb +4 -0
- data/lib/page_rankr/site.rb +1 -0
- data/lib/page_rankr/tracker.rb +10 -1
- data/lib/page_rankr/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/alexa_ranks_edge_case_1.yml +116 -108
- data/spec/fixtures/vcr_cassettes/failure_backlinks.yml +4313 -1334
- data/spec/fixtures/vcr_cassettes/failure_indexes.yml +4367 -1435
- data/spec/fixtures/vcr_cassettes/failure_ranks.yml +13 -551
- data/spec/fixtures/vcr_cassettes/success_backlinks.yml +5191 -2189
- data/spec/fixtures/vcr_cassettes/success_indexes.yml +5048 -1930
- data/spec/fixtures/vcr_cassettes/success_ranks.yml +31 -671
- data/spec/page_rankr_spec.rb +0 -5
- data/spec/proxy_services/random_spec.rb +21 -0
- data/spec/proxy_services/round_robin_spec.rb +30 -0
- data/spec/site_spec.rb +13 -0
- data/spec/spec_helper.rb +2 -2
- metadata +34 -23
- data/lib/page_rankr/ranks/compete.rb +0 -18
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -88,23 +88,23 @@ Ranks are ratings assigned to specify how popular a site is. The most famous exa
|
|
88
88
|
If you don't specify a rank provider, then all of them are used.
|
89
89
|
|
90
90
|
``` ruby
|
91
|
-
PageRankr.ranks('www.google.com', :alexa_us, :alexa_global, :
|
92
|
-
#=> {:alexa_us=>1, :alexa_global=>1, :google=>10
|
91
|
+
PageRankr.ranks('www.google.com', :alexa_us, :alexa_global, :google)
|
92
|
+
#=> {:alexa_us=>1, :alexa_global=>1, :google=>10}
|
93
93
|
|
94
94
|
# this also gives the same result
|
95
95
|
PageRankr.ranks('www.google.com')
|
96
|
-
#=> {:alexa_us=>1, :alexa_global=>1, :google=>10
|
96
|
+
#=> {:alexa_us=>1, :alexa_global=>1, :google=>10}
|
97
97
|
```
|
98
98
|
|
99
99
|
You can also use the alias `rank` instead of `ranks`.
|
100
100
|
|
101
|
-
Valid rank trackers are: `:alexa_us, :alexa_global, :
|
101
|
+
Valid rank trackers are: `:alexa_us, :alexa_global, :google`. To get this you can do:
|
102
102
|
|
103
103
|
``` ruby
|
104
|
-
PageRankr.rank_trackers #=> [:alexa_global, :alexa_us, :
|
104
|
+
PageRankr.rank_trackers #=> [:alexa_global, :alexa_us, :google]
|
105
105
|
```
|
106
106
|
|
107
|
-
Alexa
|
107
|
+
Alexa ranks are descending where 1 is the most popular. Google page ranks are in the range 0-10 where 10 is the most popular. If a site is unindexed then the rank will be nil.
|
108
108
|
|
109
109
|
## Use it a la carte!
|
110
110
|
|
@@ -130,6 +130,23 @@ Also, once a tracker has run three values will be accessible from it:
|
|
130
130
|
tracker.body #=> "<html><head>..."
|
131
131
|
```
|
132
132
|
|
133
|
+
## Rate limiting and proxies
|
134
|
+
|
135
|
+
One of the annoying things about each of these services is that they really don't like you scraping data from them. In order to deal with this issue, they throttle traffic from a single machine. The simplest way to get around this is to use proxy machines to make the requests.
|
136
|
+
|
137
|
+
In PageRankr >= 3.2.0, this is much simpler. The first thing you'll need is a proxy service. Two are provided [here](https://github.com/blatyo/page_rankr/tree/master/lib/page_rankr/proxy_services). A proxy service must define a `proxy` method that takes two arguments. It should return a string like `user:password@192.168.1.1:50501`.
|
138
|
+
|
139
|
+
Once you have a proxy service, you can tell PageRankr to use it. For example:
|
140
|
+
|
141
|
+
``` ruby
|
142
|
+
PageRankr.proxy_service = PageRankr::ProxyServices::Random.new([
|
143
|
+
'user:password@192.168.1.1:50501',
|
144
|
+
'user:password@192.168.1.2:50501'
|
145
|
+
])
|
146
|
+
```
|
147
|
+
|
148
|
+
Once PageRankr knows about your proxy service, any request that is made will ask for a proxy from the proxy service. It does this by calling the `proxy` method. When it calls the `proxy` method, it passed the name of the tracker (e.g. `:ranks_google`) and the site that is being looked up. Hopefully, this information is sufficient for you to build a much smarter proxy service than the ones provided (pull requests welcome!).
|
149
|
+
|
133
150
|
## Fix it!
|
134
151
|
|
135
152
|
If you ever find something is broken it should now be much easier to fix it with version >= 1.3.0. For example, if the xpath used to lookup a backlink is broken, just override the method for that class to provide the correct xpath.
|
@@ -198,10 +215,8 @@ Then, just make sure you require the class and PageRankr and whenever you call P
|
|
198
215
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
199
216
|
* Send me a pull request. Bonus points for topic branches.
|
200
217
|
|
201
|
-
## TODO Version
|
202
|
-
*
|
203
|
-
* New Compete API
|
204
|
-
* Some search engines throttle the amount of queries. It would be nice to know when this happens. Probably throw an exception.
|
218
|
+
## TODO Version 4
|
219
|
+
* Detect request throttling
|
205
220
|
|
206
221
|
## Contributors
|
207
222
|
* [Dru Ibarra](https://github.com/Druwerd) - Use Google Search API instead of scraping.
|
@@ -212,6 +227,7 @@ Then, just make sure you require the class and PageRankr and whenever you call P
|
|
212
227
|
* [Chris Corbyn](https://github.com/d11wtq) - Fix google page rank url.
|
213
228
|
* [Hans Haselberg](https://github.com/i0rek) - Update typhoeus gem.
|
214
229
|
* [Priit Haamer](https://github.com/priithaamer) - Fix google backlinks lookup.
|
230
|
+
* [Marty McKenna](https://github.com/martyMM) - Idea for proxy service
|
215
231
|
|
216
232
|
## Shout Out
|
217
233
|
Gotta give credit where credits due!
|
data/lib/page_rankr.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.expand_path("../page_rankr/backlinks", __FILE__)
|
2
2
|
require File.expand_path("../page_rankr/ranks", __FILE__)
|
3
3
|
require File.expand_path("../page_rankr/indexes", __FILE__)
|
4
|
+
require File.expand_path("../page_rankr/proxy_services", __FILE__)
|
4
5
|
|
5
6
|
module PageRankr
|
6
7
|
class MethodRequired < StandardError; end
|
@@ -8,6 +9,8 @@ module PageRankr
|
|
8
9
|
class SupportedComponentsInvalid < StandardError; end
|
9
10
|
|
10
11
|
class << self
|
12
|
+
attr_accessor :proxy_service
|
13
|
+
|
11
14
|
def backlinks(site, *search_engines)
|
12
15
|
Backlinks.new.lookup(Site.new(site), *search_engines)
|
13
16
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module PageRankr
|
2
|
+
module ProxyServices
|
3
|
+
class RoundRobin
|
4
|
+
def initialize(proxies)
|
5
|
+
@proxies = proxies
|
6
|
+
@index = 0
|
7
|
+
end
|
8
|
+
|
9
|
+
def proxy(name, site)
|
10
|
+
@proxies[@index].tap do
|
11
|
+
@index = (@index + 1) % @proxies.length
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/page_rankr/ranks.rb
CHANGED
@@ -2,7 +2,6 @@ require File.expand_path("../trackers", __FILE__)
|
|
2
2
|
require File.expand_path("../ranks/alexa_us", __FILE__)
|
3
3
|
require File.expand_path("../ranks/alexa_global", __FILE__)
|
4
4
|
require File.expand_path("../ranks/google", __FILE__)
|
5
|
-
require File.expand_path("../ranks/compete", __FILE__)
|
6
5
|
|
7
6
|
module PageRankr
|
8
7
|
class Ranks
|
data/lib/page_rankr/site.rb
CHANGED
data/lib/page_rankr/tracker.rb
CHANGED
@@ -13,8 +13,9 @@ module PageRankr
|
|
13
13
|
def initialize(site, options = {})
|
14
14
|
@site = PageRankr::Site(site)
|
15
15
|
|
16
|
-
@options = {:method => method, :headers => {'User-Agent' => '
|
16
|
+
@options = {:method => method, :headers => {'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11'}}
|
17
17
|
@options[:params] = params if respond_to? :params
|
18
|
+
@options[:proxy] = proxy
|
18
19
|
@options.merge!(options)
|
19
20
|
|
20
21
|
request.on_complete do |response|
|
@@ -44,6 +45,10 @@ module PageRankr
|
|
44
45
|
:get
|
45
46
|
end
|
46
47
|
|
48
|
+
def proxy
|
49
|
+
PageRankr.proxy_service.proxy(self.class.name, @site) if PageRankr.proxy_service
|
50
|
+
end
|
51
|
+
|
47
52
|
def run
|
48
53
|
hydra = Typhoeus::Hydra.new
|
49
54
|
hydra.queue request
|
@@ -73,5 +78,9 @@ module PageRankr
|
|
73
78
|
cleaned_content.to_i
|
74
79
|
end
|
75
80
|
end
|
81
|
+
|
82
|
+
def name
|
83
|
+
raise PageRankr::MethodRequired, "name is undefined for #{self.class.name}"
|
84
|
+
end
|
76
85
|
end
|
77
86
|
end
|
data/lib/page_rankr/version.rb
CHANGED
@@ -8,7 +8,8 @@ http_interactions:
|
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
-
|
11
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML,
|
12
|
+
like Gecko) Chrome/17.0.963.12 Safari/535.11
|
12
13
|
response:
|
13
14
|
status:
|
14
15
|
code: 200
|
@@ -20,7 +21,7 @@ http_interactions:
|
|
20
21
|
dGV4dC94bWw=
|
21
22
|
!binary "Q29udGVudC1MZW5ndGg=":
|
22
23
|
- !binary |-
|
23
|
-
|
24
|
+
MjU2Nw==
|
24
25
|
!binary "Q29ubmVjdGlvbg==":
|
25
26
|
- !binary |-
|
26
27
|
a2VlcC1hbGl2ZQ==
|
@@ -30,61 +31,64 @@ http_interactions:
|
|
30
31
|
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KPEFM
|
31
32
|
RVhBIFZFUj0iMC45IiBVUkw9InNsb2NvdXJ0cy5jYS5nb3YvIiBIT01FPSIw
|
32
33
|
IiBBSUQ9Ij0iPg0KPFJMUyBQUkVGSVg9Imh0dHA6Ly8iIG1vcmU9IjIzIj4K
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
PFJMIEhSRUY9ImNvdXJ0cy5jb3VudHlvZnZlbnR1cmEub3JnLyIgVElUTEU9
|
35
|
+
IlN1cGVyaW9yIENvdXJ0LCBWZW50dXJhIi8+CjxSTCBIUkVGPSJ3d3cuY28u
|
36
|
+
c2FuLWJlcm5hcmRpbm8uY2EudXMvQ291cnRzIiBUSVRMRT0iU3VwZXJpb3Ig
|
37
|
+
Q291cnQsIFNhbiBCZXJuYXJkaW5vIi8+CjxSTCBIUkVGPSJ3d3cuY28ucml2
|
38
|
+
ZXJzaWRlLmNhLnVzL2RlcHRzL2NvdXJ0cyIgVElUTEU9IlN1cGVyaW9yIENv
|
39
|
+
dXJ0IE9mIENhbGlmb3JuaWEgQ291bnR5IE9mIFJpdmVyc2lkZSIvPgo8Ukwg
|
39
40
|
SFJFRj0id3d3LmNpLnNmLmNhLnVzL2NvdXJ0cyIgVElUTEU9IlN1cGVyaW9y
|
40
|
-
IENvdXJ0LCBTYW4gRnJhbmNpc2NvIi8+
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
41
|
+
IENvdXJ0LCBTYW4gRnJhbmNpc2NvIi8+CjxSTCBIUkVGPSJ3d3cuc2Jjb3Vy
|
42
|
+
dHMub3JnLyIgVElUTEU9IlN1cGVyaW9yIENvdXJ0LCBTYW50YSBCYXJiYXJh
|
43
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvc2hlcmlmZi5vcmcvIiBUSVRMRT0iU2Fu
|
44
|
+
IEx1aXMgT2Jpc3BvIENvdW50eSBTaGVyaWZmJmFwb3M7cyBEZXBhcnRtZW50
|
45
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvZHNzLm9yZy8iIFRJVExFPSJTYW4gTHVp
|
46
|
+
cyBPYmlzcG8gQ291bnR5IERlcGFydG1lbnQgb2YgU29jaWFsIFNlcnZpY2Vz
|
47
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvY291bnR5cHdkLm9yZy8iIFRJVExFPSJT
|
48
|
+
YW4gTHVpcyBPYmlzcG8gQ291bnR5IERlcGFydG1lbnQgb2YgUHVibGljIFdv
|
49
|
+
cmtzIGFuZCBUcmFuc3BvcnRhdGlvbiIvPgo8UkwgSFJFRj0id3d3LnNsb2Nv
|
50
|
+
dW50eWZyYW5jaGlzZWFkbWluaXN0cmF0aW9uLm9yZy8iIFRJVExFPSJTYW4g
|
51
|
+
THVpcyBPYmlzcG8gQ291bnR5IEZyYW5jaGlzZSBBZG1pbmlzdHJhdGlvbiIv
|
52
|
+
Pgo8UkwgSFJFRj0id3d3LnNsb2NvZy5vcmcvIiBUSVRMRT0iU0xPQ09HIi8+
|
53
|
+
CjxSTCBIUkVGPSJ3d3cuYnV0dG9ud2FyZS5jb20vIiBUSVRMRT0id3d3LmJ1
|
54
|
+
dHRvbndhcmUuY29tLyIvPgo8L1JMUz4KPFNEIFRJVExFPSJBIiBGTEFHUz0i
|
55
|
+
RE1PWiIgSE9TVD0ic2xvY291cnRzLmNhLmdvdiI+CjxUSVRMRSBURVhUPSJT
|
56
|
+
dXBlcmlvciBDb3VydCwgU2FuIEx1aXMgT2Jpc3BvIi8+CjxBRERSIFNUUkVF
|
57
|
+
VD0iMzEwMSBHb2xkIENhbXAgRHIiIENJVFk9IlJhbmNobyBDb3Jkb3ZhIiBT
|
58
|
+
VEFURT0iQ0EiIFpJUD0iOTU2NzAiIENPVU5UUlk9IlVTIiAvPgo8Q1JFQVRF
|
59
|
+
RCBEQVRFPSIxNi1KdW4tMjAwMCIgREFZPSIxNiIgTU9OVEg9IjA2IiBZRUFS
|
60
|
+
PSIyMDAwIi8+CjxQSE9ORSBOVU1CRVI9IisxIDkxNiA0NjQgNDIzOSIvPgo8
|
61
|
+
T1dORVIgTkFNRT0iU3RhdGUgb2YgQ2FsaWZvcm5pYSIvPgo8RU1BSUwgQURE
|
62
|
+
Uj0ibGJhdGNoZWxkb3JAY28uc2xvLmNhLnVzIi8+CjxMQU5HIExFWD0iZW4i
|
63
|
+
IENPREU9InVzLWFzY2lpIi8+CjxMSU5LU0lOIE5VTT0iNjAiLz4KPFNQRUVE
|
64
|
+
IFRFWFQ9Ijc3NyIgUENUPSI4MiIvPgo8UkVWSUVXUyBBVkc9IjUuMCIgTlVN
|
65
|
+
PSIiLz4KPENISUxEIFNSQVRJTkc9IjAiLz4KPC9TRD4KCjxLRVlXT1JEUz4K
|
66
|
+
PEtFWVdPUkQgVkFMPSJTYW4gTHVpcyBPYmlzcG8iLz4KPC9LRVlXT1JEUz48
|
67
|
+
RE1PWj4KPFNJVEUgQkFTRT0ic2xvY291cnRzLmNhLmdvdi8iIFRJVExFPSJT
|
68
|
+
TE8gQ291bnR5IFN1cGVyaW9yIENvdXJ0IiBERVNDPSJBZG1pbmlzdHJhdGl2
|
69
|
+
ZSBzaXRlIG9mIHRoZSBTdXBlcmlvciBDb3VydCwgd2l0aCBpbmZvcm1hdGlv
|
70
|
+
biwgcHVibGljIG5vdGljZXMsIGFuZCBiYWlsIGFuZCBmZWUgc2NoZWR1bGVz
|
71
|
+
LiI+CjxDQVRTPgo8Q0FUIElEPSJUb3AvUmVnaW9uYWwvTm9ydGhfQW1lcmlj
|
72
|
+
YS9Vbml0ZWRfU3RhdGVzL0NhbGlmb3JuaWEvR292ZXJubWVudC9Db3VydHMi
|
73
|
+
IFRJVExFPSJHb3Zlcm5tZW50L0NvdXJ0cyIgQ0lEPSI2MjA3MTciLz4KPENB
|
74
|
+
VCBJRD0iVG9wL1JlZ2lvbmFsL05vcnRoX0FtZXJpY2EvVW5pdGVkX1N0YXRl
|
75
|
+
cy9DYWxpZm9ybmlhL0NvdW50aWVzL1Nhbl9MdWlzX09iaXNwby9Hb3Zlcm5t
|
76
|
+
ZW50IiBUSVRMRT0iU2FuIEx1aXMgT2Jpc3BvL0dvdmVybm1lbnQiIENJRD0i
|
77
|
+
NjIwNTEwIi8+CjxDQVQgSUQ9IlRvcC9SZWdpb25hbC9Ob3J0aF9BbWVyaWNh
|
78
|
+
L1VuaXRlZF9TdGF0ZXMvQ2FsaWZvcm5pYSIgVElUTEU9IlVuaXRlZCBTdGF0
|
79
|
+
ZXMvQ2FsaWZvcm5pYSIgQ0lEPSI2MTkwODciLz4KPENBVCBJRD0iVG9wL1Jl
|
80
|
+
Z2lvbmFsL05vcnRoX0FtZXJpY2EvVW5pdGVkX1N0YXRlcy9DYWxpZm9ybmlh
|
81
|
+
L0dvdmVybm1lbnQiIFRJVExFPSJDYWxpZm9ybmlhL0dvdmVybm1lbnQiIENJ
|
82
|
+
RD0iNjIwNjA4Ii8+CjxDQVQgSUQ9IlRvcC9Xb3JsZC9Fc3Bhw7FvbC9SZWdp
|
83
|
+
b25hbC9BbcOpcmljYS9Fc3RhZG9zX1VuaWRvcy9Fc3RhZG9zL0NhbGlmb3Ju
|
84
|
+
aWEiIFRJVExFPSJFc3RhZG9zL0NhbGlmb3JuaWEiIENJRD0iMjYyNDkiLz4K
|
85
|
+
PC9DQVRTPgo8L1NJVEU+CjwvRE1PWj4KPFNEPgo8UE9QVUxBUklUWSBVUkw9
|
86
|
+
ImNhLmdvdi8iIFRFWFQ9Ijc2MCIgU09VUkNFPSJwYW5lbCIvPgo8UkVBQ0gg
|
87
|
+
UkFOSz0iODQ0Ii8+CjxSQU5LIERFTFRBPSItODgiLz4KPC9TRD4KPC9BTEVY
|
88
|
+
QT4=
|
85
89
|
http_version: !binary |-
|
86
90
|
MS4x
|
87
|
-
recorded_at:
|
91
|
+
recorded_at: Sat, 12 May 2012 18:39:16 GMT
|
88
92
|
- request:
|
89
93
|
method: get
|
90
94
|
uri: http://data.alexa.com/data?cli=10&dat=snbamz&url=slocourts.net
|
@@ -93,7 +97,8 @@ http_interactions:
|
|
93
97
|
string: ''
|
94
98
|
headers:
|
95
99
|
User-Agent:
|
96
|
-
-
|
100
|
+
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML,
|
101
|
+
like Gecko) Chrome/17.0.963.12 Safari/535.11
|
97
102
|
response:
|
98
103
|
status:
|
99
104
|
code: 200
|
@@ -105,7 +110,7 @@ http_interactions:
|
|
105
110
|
dGV4dC94bWw=
|
106
111
|
!binary "Q29udGVudC1MZW5ndGg=":
|
107
112
|
- !binary |-
|
108
|
-
|
113
|
+
MjU2Nw==
|
109
114
|
!binary "Q29ubmVjdGlvbg==":
|
110
115
|
- !binary |-
|
111
116
|
a2VlcC1hbGl2ZQ==
|
@@ -115,59 +120,62 @@ http_interactions:
|
|
115
120
|
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KPEFM
|
116
121
|
RVhBIFZFUj0iMC45IiBVUkw9InNsb2NvdXJ0cy5jYS5nb3YvIiBIT01FPSIw
|
117
122
|
IiBBSUQ9Ij0iPg0KPFJMUyBQUkVGSVg9Imh0dHA6Ly8iIG1vcmU9IjIzIj4K
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
123
|
+
PFJMIEhSRUY9ImNvdXJ0cy5jb3VudHlvZnZlbnR1cmEub3JnLyIgVElUTEU9
|
124
|
+
IlN1cGVyaW9yIENvdXJ0LCBWZW50dXJhIi8+CjxSTCBIUkVGPSJ3d3cuY28u
|
125
|
+
c2FuLWJlcm5hcmRpbm8uY2EudXMvQ291cnRzIiBUSVRMRT0iU3VwZXJpb3Ig
|
126
|
+
Q291cnQsIFNhbiBCZXJuYXJkaW5vIi8+CjxSTCBIUkVGPSJ3d3cuY28ucml2
|
127
|
+
ZXJzaWRlLmNhLnVzL2RlcHRzL2NvdXJ0cyIgVElUTEU9IlN1cGVyaW9yIENv
|
128
|
+
dXJ0IE9mIENhbGlmb3JuaWEgQ291bnR5IE9mIFJpdmVyc2lkZSIvPgo8Ukwg
|
124
129
|
SFJFRj0id3d3LmNpLnNmLmNhLnVzL2NvdXJ0cyIgVElUTEU9IlN1cGVyaW9y
|
125
|
-
IENvdXJ0LCBTYW4gRnJhbmNpc2NvIi8+
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
130
|
+
IENvdXJ0LCBTYW4gRnJhbmNpc2NvIi8+CjxSTCBIUkVGPSJ3d3cuc2Jjb3Vy
|
131
|
+
dHMub3JnLyIgVElUTEU9IlN1cGVyaW9yIENvdXJ0LCBTYW50YSBCYXJiYXJh
|
132
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvc2hlcmlmZi5vcmcvIiBUSVRMRT0iU2Fu
|
133
|
+
IEx1aXMgT2Jpc3BvIENvdW50eSBTaGVyaWZmJmFwb3M7cyBEZXBhcnRtZW50
|
134
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvZHNzLm9yZy8iIFRJVExFPSJTYW4gTHVp
|
135
|
+
cyBPYmlzcG8gQ291bnR5IERlcGFydG1lbnQgb2YgU29jaWFsIFNlcnZpY2Vz
|
136
|
+
Ii8+CjxSTCBIUkVGPSJ3d3cuc2xvY291bnR5cHdkLm9yZy8iIFRJVExFPSJT
|
137
|
+
YW4gTHVpcyBPYmlzcG8gQ291bnR5IERlcGFydG1lbnQgb2YgUHVibGljIFdv
|
138
|
+
cmtzIGFuZCBUcmFuc3BvcnRhdGlvbiIvPgo8UkwgSFJFRj0id3d3LnNsb2Nv
|
139
|
+
dW50eWZyYW5jaGlzZWFkbWluaXN0cmF0aW9uLm9yZy8iIFRJVExFPSJTYW4g
|
140
|
+
THVpcyBPYmlzcG8gQ291bnR5IEZyYW5jaGlzZSBBZG1pbmlzdHJhdGlvbiIv
|
141
|
+
Pgo8UkwgSFJFRj0id3d3LnNsb2NvZy5vcmcvIiBUSVRMRT0iU0xPQ09HIi8+
|
142
|
+
CjxSTCBIUkVGPSJ3d3cuYnV0dG9ud2FyZS5jb20vIiBUSVRMRT0id3d3LmJ1
|
143
|
+
dHRvbndhcmUuY29tLyIvPgo8L1JMUz4KPFNEIFRJVExFPSJBIiBGTEFHUz0i
|
144
|
+
RE1PWiIgSE9TVD0ic2xvY291cnRzLmNhLmdvdiI+CjxUSVRMRSBURVhUPSJT
|
145
|
+
dXBlcmlvciBDb3VydCwgU2FuIEx1aXMgT2Jpc3BvIi8+CjxBRERSIFNUUkVF
|
146
|
+
VD0iMzEwMSBHb2xkIENhbXAgRHIiIENJVFk9IlJhbmNobyBDb3Jkb3ZhIiBT
|
147
|
+
VEFURT0iQ0EiIFpJUD0iOTU2NzAiIENPVU5UUlk9IlVTIiAvPgo8Q1JFQVRF
|
148
|
+
RCBEQVRFPSIxNi1KdW4tMjAwMCIgREFZPSIxNiIgTU9OVEg9IjA2IiBZRUFS
|
149
|
+
PSIyMDAwIi8+CjxQSE9ORSBOVU1CRVI9IisxIDkxNiA0NjQgNDIzOSIvPgo8
|
150
|
+
T1dORVIgTkFNRT0iU3RhdGUgb2YgQ2FsaWZvcm5pYSIvPgo8RU1BSUwgQURE
|
151
|
+
Uj0ibGJhdGNoZWxkb3JAY28uc2xvLmNhLnVzIi8+CjxMQU5HIExFWD0iZW4i
|
152
|
+
IENPREU9InVzLWFzY2lpIi8+CjxMSU5LU0lOIE5VTT0iNjAiLz4KPFNQRUVE
|
153
|
+
IFRFWFQ9Ijc3NyIgUENUPSI4MiIvPgo8UkVWSUVXUyBBVkc9IjUuMCIgTlVN
|
154
|
+
PSIiLz4KPENISUxEIFNSQVRJTkc9IjAiLz4KPC9TRD4KCjxLRVlXT1JEUz4K
|
155
|
+
PEtFWVdPUkQgVkFMPSJTYW4gTHVpcyBPYmlzcG8iLz4KPC9LRVlXT1JEUz48
|
156
|
+
RE1PWj4KPFNJVEUgQkFTRT0ic2xvY291cnRzLmNhLmdvdi8iIFRJVExFPSJT
|
157
|
+
TE8gQ291bnR5IFN1cGVyaW9yIENvdXJ0IiBERVNDPSJBZG1pbmlzdHJhdGl2
|
158
|
+
ZSBzaXRlIG9mIHRoZSBTdXBlcmlvciBDb3VydCwgd2l0aCBpbmZvcm1hdGlv
|
159
|
+
biwgcHVibGljIG5vdGljZXMsIGFuZCBiYWlsIGFuZCBmZWUgc2NoZWR1bGVz
|
160
|
+
LiI+CjxDQVRTPgo8Q0FUIElEPSJUb3AvUmVnaW9uYWwvTm9ydGhfQW1lcmlj
|
161
|
+
YS9Vbml0ZWRfU3RhdGVzL0NhbGlmb3JuaWEvR292ZXJubWVudC9Db3VydHMi
|
162
|
+
IFRJVExFPSJHb3Zlcm5tZW50L0NvdXJ0cyIgQ0lEPSI2MjA3MTciLz4KPENB
|
163
|
+
VCBJRD0iVG9wL1JlZ2lvbmFsL05vcnRoX0FtZXJpY2EvVW5pdGVkX1N0YXRl
|
164
|
+
cy9DYWxpZm9ybmlhL0NvdW50aWVzL1Nhbl9MdWlzX09iaXNwby9Hb3Zlcm5t
|
165
|
+
ZW50IiBUSVRMRT0iU2FuIEx1aXMgT2Jpc3BvL0dvdmVybm1lbnQiIENJRD0i
|
166
|
+
NjIwNTEwIi8+CjxDQVQgSUQ9IlRvcC9SZWdpb25hbC9Ob3J0aF9BbWVyaWNh
|
167
|
+
L1VuaXRlZF9TdGF0ZXMvQ2FsaWZvcm5pYSIgVElUTEU9IlVuaXRlZCBTdGF0
|
168
|
+
ZXMvQ2FsaWZvcm5pYSIgQ0lEPSI2MTkwODciLz4KPENBVCBJRD0iVG9wL1Jl
|
169
|
+
Z2lvbmFsL05vcnRoX0FtZXJpY2EvVW5pdGVkX1N0YXRlcy9DYWxpZm9ybmlh
|
170
|
+
L0dvdmVybm1lbnQiIFRJVExFPSJDYWxpZm9ybmlhL0dvdmVybm1lbnQiIENJ
|
171
|
+
RD0iNjIwNjA4Ii8+CjxDQVQgSUQ9IlRvcC9Xb3JsZC9Fc3Bhw7FvbC9SZWdp
|
172
|
+
b25hbC9BbcOpcmljYS9Fc3RhZG9zX1VuaWRvcy9Fc3RhZG9zL0NhbGlmb3Ju
|
173
|
+
aWEiIFRJVExFPSJFc3RhZG9zL0NhbGlmb3JuaWEiIENJRD0iMjYyNDkiLz4K
|
174
|
+
PC9DQVRTPgo8L1NJVEU+CjwvRE1PWj4KPFNEPgo8UE9QVUxBUklUWSBVUkw9
|
175
|
+
ImNhLmdvdi8iIFRFWFQ9Ijc2MCIgU09VUkNFPSJwYW5lbCIvPgo8UkVBQ0gg
|
176
|
+
UkFOSz0iODQ0Ii8+CjxSQU5LIERFTFRBPSItODgiLz4KPC9TRD4KPC9BTEVY
|
177
|
+
QT4=
|
170
178
|
http_version: !binary |-
|
171
179
|
MS4x
|
172
|
-
recorded_at:
|
180
|
+
recorded_at: Sat, 12 May 2012 18:39:16 GMT
|
173
181
|
recorded_with: VCR 2.0.1
|