PageRankr 3.0.2 → 3.1.0
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.
- data/CHANGELOG.md +5 -0
- data/PageRankr.gemspec +1 -1
- data/README.md +6 -6
- data/lib/page_rankr.rb +3 -2
- data/lib/page_rankr/backlink.rb +6 -0
- data/lib/page_rankr/backlinks/alexa.rb +1 -1
- data/lib/page_rankr/backlinks/bing.rb +1 -1
- data/lib/page_rankr/backlinks/google.rb +2 -2
- data/lib/page_rankr/backlinks/yahoo.rb +4 -3
- data/lib/page_rankr/index.rb +6 -0
- data/lib/page_rankr/indexes.rb +1 -0
- data/lib/page_rankr/indexes/bing.rb +1 -1
- data/lib/page_rankr/indexes/google.rb +2 -2
- data/lib/page_rankr/indexes/yahoo.rb +21 -0
- data/lib/page_rankr/ranks/alexa_global.rb +6 -2
- data/lib/page_rankr/ranks/alexa_us.rb +6 -2
- data/lib/page_rankr/ranks/google.rb +7 -2
- data/lib/page_rankr/site.rb +65 -14
- data/lib/page_rankr/tracker.rb +8 -0
- data/lib/page_rankr/version.rb +1 -1
- data/out.html +405 -0
- data/spec/edge_cases_spec.rb +1 -1
- data/spec/fixtures/vcr_cassettes/alexa_ranks_edge_case_1.yml +12 -12
- data/spec/fixtures/vcr_cassettes/failure_backlinks.yml +492 -99
- data/spec/fixtures/vcr_cassettes/failure_indexes.yml +493 -58
- data/spec/fixtures/vcr_cassettes/failure_ranks.yml +22 -22
- data/spec/fixtures/vcr_cassettes/success_backlinks.yml +70 -80
- data/spec/fixtures/vcr_cassettes/success_indexes.yml +72 -53
- data/spec/fixtures/vcr_cassettes/success_ranks.yml +96 -83
- data/spec/page_rankr_spec.rb +15 -9
- metadata +65 -6
data/CHANGELOG.md
CHANGED
data/PageRankr.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.add_runtime_dependency "nokogiri", ">= 1.4.1"
|
21
21
|
s.add_runtime_dependency "json", ">= 1.4.6"
|
22
|
-
s.add_runtime_dependency "
|
22
|
+
s.add_runtime_dependency "public_suffix", ">= 0.9.0"
|
23
23
|
s.add_runtime_dependency "typhoeus", ">= 0.2.1"
|
24
24
|
s.add_runtime_dependency "jsonpath", ">= 0.4.2"
|
25
25
|
|
data/README.md
CHANGED
@@ -62,19 +62,19 @@ If you don't specify a search engine, then all of them are used.
|
|
62
62
|
``` ruby
|
63
63
|
# this
|
64
64
|
PageRankr.indexes('www.google.com')
|
65
|
-
#=> {:bing=>2120000, :google=>4860000}
|
65
|
+
#=> {:bing=>2120000, :google=>4860000, :yahoo => 4863000}
|
66
66
|
|
67
67
|
# is equivalent to
|
68
|
-
PageRankr.indexes('www.google.com', :google, :bing)
|
69
|
-
#=> {:bing=>2120000, :google=>4860000}
|
68
|
+
PageRankr.indexes('www.google.com', :google, :bing, :yahoo)
|
69
|
+
#=> {:bing=>2120000, :google=>4860000, :yahoo => 4863000}
|
70
70
|
```
|
71
71
|
|
72
72
|
You can also use the alias `index` instead of `indexes`.
|
73
73
|
|
74
|
-
Valid search engines are: `:google, :bing`. To get this list you can do:
|
74
|
+
Valid search engines are: `:google, :bing, :yahoo`. To get this list you can do:
|
75
75
|
|
76
76
|
``` ruby
|
77
|
-
PageRankr.index_trackers #=> [:bing, :google]
|
77
|
+
PageRankr.index_trackers #=> [:bing, :google, :yahoo]
|
78
78
|
```
|
79
79
|
|
80
80
|
### Ranks
|
@@ -165,7 +165,7 @@ If you ever come across a site that provides a rank or backlinks you can hook th
|
|
165
165
|
|
166
166
|
# This method specifies the parameters for the url. It is optional, but likely required for the class to be useful.
|
167
167
|
def params
|
168
|
-
{:q =>
|
168
|
+
{:q => tracked_url}
|
169
169
|
end
|
170
170
|
|
171
171
|
# You can use a method named either xpath, jsonpath, or regex with the appropriate query type
|
data/lib/page_rankr.rb
CHANGED
@@ -3,8 +3,9 @@ require File.expand_path("../page_rankr/ranks", __FILE__)
|
|
3
3
|
require File.expand_path("../page_rankr/indexes", __FILE__)
|
4
4
|
|
5
5
|
module PageRankr
|
6
|
-
class MethodRequired
|
7
|
-
class DomainInvalid
|
6
|
+
class MethodRequired < StandardError; end
|
7
|
+
class DomainInvalid < StandardError; end
|
8
|
+
class SupportedComponentsInvalid < StandardError; end
|
8
9
|
|
9
10
|
class << self
|
10
11
|
def backlinks(site, *search_engines)
|
data/lib/page_rankr/backlink.rb
CHANGED
@@ -6,14 +6,15 @@ module PageRankr
|
|
6
6
|
include Backlink
|
7
7
|
|
8
8
|
def url
|
9
|
-
"http://
|
9
|
+
"http://search.yahoo.com/search"
|
10
10
|
end
|
11
|
+
|
11
12
|
def params
|
12
|
-
{:p => "
|
13
|
+
{:p => "inbody:#{tracked_url}"}
|
13
14
|
end
|
14
15
|
|
15
16
|
def xpath
|
16
|
-
"//
|
17
|
+
"//span[@id='resultCount']/text()"
|
17
18
|
end
|
18
19
|
end
|
19
20
|
end
|
data/lib/page_rankr/index.rb
CHANGED
data/lib/page_rankr/indexes.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path('../../index', __FILE__)
|
2
|
+
|
3
|
+
module PageRankr
|
4
|
+
class Indexes
|
5
|
+
class Yahoo
|
6
|
+
include Index
|
7
|
+
|
8
|
+
def url
|
9
|
+
"http://search.yahoo.com/search"
|
10
|
+
end
|
11
|
+
|
12
|
+
def params
|
13
|
+
{:p => "site:#{tracked_url}"}
|
14
|
+
end
|
15
|
+
|
16
|
+
def xpath
|
17
|
+
"//span[@id='resultCount']/text()"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -10,7 +10,7 @@ module PageRankr
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def params
|
13
|
-
{:cli => 10, :dat => "snbamz", :url =>
|
13
|
+
{:cli => 10, :dat => "snbamz", :url => tracked_url}
|
14
14
|
end
|
15
15
|
|
16
16
|
# Alexa may sometimes return a result for the incorrect site and thus it is necessary to check if
|
@@ -20,7 +20,11 @@ module PageRankr
|
|
20
20
|
# to slocourts.net. Clearly something is wrong with how Alexa handles this case and so in the event this
|
21
21
|
# happens we treat the results as if there were no results.
|
22
22
|
def xpath
|
23
|
-
"//popularity[contains(@url, '#{
|
23
|
+
"//popularity[contains(@url, '#{tracked_url}')]/@text"
|
24
|
+
end
|
25
|
+
|
26
|
+
def supported_components
|
27
|
+
[:domain]
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
@@ -10,7 +10,7 @@ module PageRankr
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def params
|
13
|
-
{:cli => 10, :dat => "snbamz", :url =>
|
13
|
+
{:cli => 10, :dat => "snbamz", :url => tracked_url}
|
14
14
|
end
|
15
15
|
|
16
16
|
# Alexa may sometimes return a result for the incorrect site and thus it is necessary to check if
|
@@ -20,7 +20,11 @@ module PageRankr
|
|
20
20
|
# to slocourts.net. Clearly something is wrong with how Alexa handles this case and so in the event this
|
21
21
|
# happens we treat the results as if there were no results.
|
22
22
|
def xpath
|
23
|
-
"//popularity[contains(@url, '#{
|
23
|
+
"//popularity[contains(@url, '#{tracked_url}')]/../reach/@rank"
|
24
|
+
end
|
25
|
+
|
26
|
+
def supported_components
|
27
|
+
[:domain]
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
@@ -7,17 +7,22 @@ module PageRankr
|
|
7
7
|
include Rank
|
8
8
|
|
9
9
|
def initialize(site)
|
10
|
-
@
|
10
|
+
@site = PageRankr::Site(site)
|
11
|
+
@checksum = Checksum.generate("info:#{tracked_url}")
|
11
12
|
|
12
13
|
super(site)
|
13
14
|
end
|
14
15
|
|
16
|
+
def supported_components
|
17
|
+
[:subdomain, :path]
|
18
|
+
end
|
19
|
+
|
15
20
|
def url
|
16
21
|
"http://toolbarqueries.google.com/tbr"
|
17
22
|
end
|
18
23
|
|
19
24
|
def params
|
20
|
-
{:client => "navclient-auto", :ch => @checksum, :features => "Rank", :q => "info:#{
|
25
|
+
{:client => "navclient-auto", :ch => @checksum, :features => "Rank", :q => "info:#{tracked_url}"}
|
21
26
|
end
|
22
27
|
|
23
28
|
def regex
|
data/lib/page_rankr/site.rb
CHANGED
@@ -1,28 +1,79 @@
|
|
1
|
-
require '
|
1
|
+
require 'public_suffix'
|
2
2
|
require 'delegate'
|
3
|
+
require 'uri'
|
3
4
|
|
4
5
|
module PageRankr
|
5
|
-
class Site
|
6
|
+
class Site
|
7
|
+
COMPONENTS = [:scheme, :subdomain, :domain, :port, :path, :query, :fragment]
|
8
|
+
|
6
9
|
def initialize(site)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
+
@uri = URI.parse(site)
|
11
|
+
@domain = PublicSuffix.parse(@uri.host)
|
12
|
+
|
13
|
+
@domain.valid? or raise DomainInvalid, "The domain provided is invalid.1"
|
14
|
+
rescue PublicSuffix::DomainInvalid, URI::InvalidURIError
|
10
15
|
raise DomainInvalid, "The domain provided is invalid."
|
11
16
|
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
def scheme
|
19
|
+
@uri.scheme
|
20
|
+
end
|
21
|
+
|
22
|
+
def domain
|
23
|
+
@domain.domain
|
24
|
+
end
|
25
|
+
|
26
|
+
def subdomain
|
27
|
+
@domain.subdomain or domain
|
28
|
+
end
|
29
|
+
|
30
|
+
def port
|
31
|
+
@uri.port
|
32
|
+
end
|
33
|
+
|
34
|
+
def path
|
35
|
+
@uri.path
|
36
|
+
end
|
37
|
+
|
38
|
+
def query
|
39
|
+
@uri.query
|
40
|
+
end
|
41
|
+
|
42
|
+
def fragment
|
43
|
+
@uri.fragment
|
44
|
+
end
|
45
|
+
|
46
|
+
def url(supported_components = [:domain])
|
47
|
+
supported_components = COMPONENTS & supported_components #get ordered list
|
48
|
+
|
49
|
+
unless supported_components.include?(:subdomain) ^ supported_components.include?(:domain)
|
50
|
+
raise SupportedComponentsInvalid, "Either subdomain or domain should be set as a supported component, not both."
|
51
|
+
end
|
52
|
+
|
53
|
+
supported_components.inject("") do |url, component|
|
54
|
+
url + case component
|
55
|
+
when :scheme
|
56
|
+
scheme and "#{scheme}://" or ""
|
57
|
+
when :domain
|
58
|
+
domain
|
59
|
+
when :subdomain
|
60
|
+
subdomain
|
61
|
+
when :port
|
62
|
+
port == @uri.default_port and "" or ":#{port}"
|
63
|
+
when :path
|
64
|
+
path or ""
|
65
|
+
when :query
|
66
|
+
query and "?#{query}" or ""
|
67
|
+
when :fragment
|
68
|
+
fragment and "##{fragment}" or ""
|
69
|
+
end
|
70
|
+
end
|
20
71
|
end
|
21
72
|
end
|
22
73
|
|
23
74
|
class << self
|
24
75
|
def Site(site)
|
25
|
-
site.respond_to?(:
|
76
|
+
site.respond_to?(:url) ? site : Site.new(site)
|
26
77
|
end
|
27
78
|
end
|
28
79
|
end
|
data/lib/page_rankr/tracker.rb
CHANGED
@@ -32,6 +32,14 @@ module PageRankr
|
|
32
32
|
raise PageRankr::MethodRequired, "A url method defining the url to the service with the value you wish to extract must be defined."
|
33
33
|
end
|
34
34
|
|
35
|
+
def tracked_url
|
36
|
+
@site.url(supported_components)
|
37
|
+
end
|
38
|
+
|
39
|
+
def supported_components
|
40
|
+
[:subdomain]
|
41
|
+
end
|
42
|
+
|
35
43
|
def method
|
36
44
|
:get
|
37
45
|
end
|
data/lib/page_rankr/version.rb
CHANGED
data/out.html
ADDED
@@ -0,0 +1,405 @@
|
|
1
|
+
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>link:www.google.com - Google Search</title><style>#gbar,#guser{font-size:13px;padding-top:1px !important}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}</style><style>
|
2
|
+
body,td,div,.p,a{
|
3
|
+
font-family:arial,sans-serif
|
4
|
+
}
|
5
|
+
body {
|
6
|
+
margin:0
|
7
|
+
}
|
8
|
+
#gbar{
|
9
|
+
float:left;
|
10
|
+
height:22px;padding-left:2px;
|
11
|
+
font-size:13px
|
12
|
+
}
|
13
|
+
|
14
|
+
.gssb_c table{
|
15
|
+
font-size:1em
|
16
|
+
}
|
17
|
+
.gsfi,.gsfs{
|
18
|
+
font-size:17px
|
19
|
+
}
|
20
|
+
|
21
|
+
.j{
|
22
|
+
width:34em
|
23
|
+
}
|
24
|
+
|
25
|
+
a:link,.w,.q:active,.q:visited,.tbotu{
|
26
|
+
color:#11c
|
27
|
+
}
|
28
|
+
a.fl,.flc a{
|
29
|
+
color:#4272db;text-decoration:none
|
30
|
+
}
|
31
|
+
|
32
|
+
a.gl{
|
33
|
+
text-decoration:none
|
34
|
+
}
|
35
|
+
cite, cite a:link{
|
36
|
+
color:#0E774A;
|
37
|
+
font-style:normal
|
38
|
+
}
|
39
|
+
#foot {
|
40
|
+
padding:0 8px;
|
41
|
+
}
|
42
|
+
#foot a{
|
43
|
+
white-space:nowrap
|
44
|
+
}
|
45
|
+
h3{
|
46
|
+
font-size:16px;
|
47
|
+
font-weight:normal;
|
48
|
+
margin:0;
|
49
|
+
padding:0
|
50
|
+
}
|
51
|
+
#res h3{
|
52
|
+
display:inline
|
53
|
+
}
|
54
|
+
.hd{
|
55
|
+
height:1px;
|
56
|
+
position:absolute;
|
57
|
+
top:-1000em
|
58
|
+
}
|
59
|
+
li.g,body,html,table,.std{
|
60
|
+
font-size:13px
|
61
|
+
}
|
62
|
+
li.g{
|
63
|
+
margin-bottom:14px;
|
64
|
+
margin-top:0;
|
65
|
+
zoom:1;
|
66
|
+
}
|
67
|
+
ol li,ul li{
|
68
|
+
list-style:none
|
69
|
+
}
|
70
|
+
h1,ol,ul,li{
|
71
|
+
margin:0;padding:0
|
72
|
+
}
|
73
|
+
#mbEnd li{
|
74
|
+
margin:1em 0
|
75
|
+
}
|
76
|
+
#mbEnd h2{
|
77
|
+
color:#676767;
|
78
|
+
font-family:arial,sans-serif;
|
79
|
+
font-size:11px;
|
80
|
+
font-weight:normal
|
81
|
+
}
|
82
|
+
#center_col{
|
83
|
+
border-left:1px solid #d3e1f9;
|
84
|
+
padding:0 8px
|
85
|
+
}
|
86
|
+
|
87
|
+
#fll a,#bfl a{
|
88
|
+
margin:0 10px
|
89
|
+
}
|
90
|
+
|
91
|
+
.f{
|
92
|
+
color:#767676
|
93
|
+
}
|
94
|
+
.grn{
|
95
|
+
color:#393
|
96
|
+
}
|
97
|
+
.ds{
|
98
|
+
border-right:1px solid #e7e7e7;
|
99
|
+
position:relative;
|
100
|
+
height:32px;
|
101
|
+
|
102
|
+
z-index:100
|
103
|
+
}
|
104
|
+
.e{
|
105
|
+
margin:2px 0px 0.75em
|
106
|
+
}
|
107
|
+
#leftnav a,.slk a{
|
108
|
+
text-decoration:none
|
109
|
+
}
|
110
|
+
#leftnav h2{
|
111
|
+
color: #767676;
|
112
|
+
font-weight: normal;
|
113
|
+
margin:0
|
114
|
+
}
|
115
|
+
#logo{
|
116
|
+
display:block;
|
117
|
+
height:49px;
|
118
|
+
margin-top:12px;
|
119
|
+
margin-left:12px;
|
120
|
+
overflow:hidden;
|
121
|
+
position:relative;
|
122
|
+
width:137px
|
123
|
+
}
|
124
|
+
#logo img{
|
125
|
+
|
126
|
+
left:0;
|
127
|
+
position:absolute;
|
128
|
+
top:-41px
|
129
|
+
}
|
130
|
+
.lnsec{
|
131
|
+
font-size:13px;
|
132
|
+
border-top:1px solid #c9d7f1;
|
133
|
+
margin-top:5px;
|
134
|
+
padding-top:8px
|
135
|
+
}
|
136
|
+
.lsb,.micon,.csb,.star,.star div{
|
137
|
+
background:url(/images/nav_logo_hp2.png) no-repeat;
|
138
|
+
overflow:hidden
|
139
|
+
}
|
140
|
+
.lst{
|
141
|
+
background:#fff;
|
142
|
+
border:1px solid #ccc;
|
143
|
+
border-bottom:none;
|
144
|
+
color:#000;
|
145
|
+
font:18px arial,sans-serif;
|
146
|
+
|
147
|
+
float:left;
|
148
|
+
height:26px;
|
149
|
+
margin:0;
|
150
|
+
padding:4px 0 0;
|
151
|
+
padding-left:6px;
|
152
|
+
padding-right:10px;
|
153
|
+
vertical-align:top;
|
154
|
+
width:100%;
|
155
|
+
|
156
|
+
word-break:break-all
|
157
|
+
}
|
158
|
+
.lst:focus{
|
159
|
+
outline:none
|
160
|
+
}
|
161
|
+
.lst-td{
|
162
|
+
border-bottom:1px solid #999;
|
163
|
+
padding:0
|
164
|
+
}
|
165
|
+
.lst-b{
|
166
|
+
border:1px solid #CCC;
|
167
|
+
border-bottom:none;
|
168
|
+
padding-right:0;
|
169
|
+
height:29px;
|
170
|
+
padding-top:1px
|
171
|
+
}
|
172
|
+
.tia input{
|
173
|
+
border-right:none;
|
174
|
+
padding-right:0
|
175
|
+
}
|
176
|
+
.tia{
|
177
|
+
padding-right:0
|
178
|
+
}
|
179
|
+
.lsbb{
|
180
|
+
background:#eee;
|
181
|
+
border:1px solid #999;
|
182
|
+
border-top-color:#ccc;
|
183
|
+
border-left-color:#ccc;
|
184
|
+
height:30px
|
185
|
+
}
|
186
|
+
.lsb{
|
187
|
+
background-position:bottom;
|
188
|
+
border:none;
|
189
|
+
color:#000;
|
190
|
+
cursor:pointer;
|
191
|
+
font:15px arial,sans-serif;
|
192
|
+
height:30px;
|
193
|
+
margin:0;
|
194
|
+
vertical-align:top
|
195
|
+
}
|
196
|
+
.lsb:active{
|
197
|
+
background:#ccc
|
198
|
+
}
|
199
|
+
.micon {
|
200
|
+
float:left;
|
201
|
+
height:19px;
|
202
|
+
margin-top:2px;
|
203
|
+
margin-right: 6px;
|
204
|
+
width:19px;
|
205
|
+
}
|
206
|
+
#nav{
|
207
|
+
|
208
|
+
border-collapse:collapse;
|
209
|
+
margin-top:17px;
|
210
|
+
text-align:left
|
211
|
+
}
|
212
|
+
#nav td{
|
213
|
+
text-align:center;
|
214
|
+
}
|
215
|
+
.nobr{
|
216
|
+
white-space:nowrap
|
217
|
+
}
|
218
|
+
#showmodes .micon{
|
219
|
+
background-position:-150px -114px;
|
220
|
+
height:17px;
|
221
|
+
margin-left:9px;
|
222
|
+
width:17px;
|
223
|
+
}
|
224
|
+
#subform_ctrl{
|
225
|
+
font-size:11px;
|
226
|
+
height:26px;
|
227
|
+
margin:5px 3px 0;
|
228
|
+
margin-left:17px
|
229
|
+
}
|
230
|
+
.ts{
|
231
|
+
border-collapse:collapse
|
232
|
+
}
|
233
|
+
#mn{
|
234
|
+
table-layout:fixed;width:996px
|
235
|
+
}
|
236
|
+
.mitem{
|
237
|
+
font-size:15px;
|
238
|
+
line-height:24px;
|
239
|
+
margin-bottom:2px;
|
240
|
+
padding-left:0
|
241
|
+
}
|
242
|
+
.msel{
|
243
|
+
font-weight:bold;
|
244
|
+
margin:-1px 0 0 0;
|
245
|
+
border:solid #fff;
|
246
|
+
border-width:1px 0
|
247
|
+
}
|
248
|
+
.r{
|
249
|
+
margin:0
|
250
|
+
}
|
251
|
+
#res{
|
252
|
+
padding:4px 8px 0
|
253
|
+
}
|
254
|
+
.s br{
|
255
|
+
display:none
|
256
|
+
}
|
257
|
+
.spon{
|
258
|
+
font-size:11px;
|
259
|
+
font-weight:normal;
|
260
|
+
color:#767676
|
261
|
+
}
|
262
|
+
.mitem,.lnsec{
|
263
|
+
padding-left:8px
|
264
|
+
}
|
265
|
+
#showmodes{
|
266
|
+
font-size:15px;
|
267
|
+
line-height:24px;
|
268
|
+
}
|
269
|
+
#swr{
|
270
|
+
margin-top:4px
|
271
|
+
}
|
272
|
+
#swr li{
|
273
|
+
line-height:1.2;
|
274
|
+
margin-bottom:4px
|
275
|
+
}
|
276
|
+
.csb{
|
277
|
+
display:block;
|
278
|
+
height:40px;
|
279
|
+
}
|
280
|
+
.images_table td{line-height:17px;padding-bottom:16px}
|
281
|
+
.images_table img{border:1px solid #ccc;padding:1px}
|
282
|
+
.taf{
|
283
|
+
padding:1px 0 0
|
284
|
+
}
|
285
|
+
.tam{
|
286
|
+
padding:14px 0 0
|
287
|
+
}
|
288
|
+
.tal{
|
289
|
+
padding:14px 0 1px
|
290
|
+
}
|
291
|
+
#tbd,#abd{
|
292
|
+
display:block;
|
293
|
+
min-height:1px;
|
294
|
+
padding-top:3px
|
295
|
+
}
|
296
|
+
#tbd li{
|
297
|
+
|
298
|
+
display:inline
|
299
|
+
}
|
300
|
+
.tbfo,.tbt,.tbpd{
|
301
|
+
margin-bottom:8px
|
302
|
+
}
|
303
|
+
#tbd .tbt li{
|
304
|
+
display:block;
|
305
|
+
font-size:13px;
|
306
|
+
line-height:1.2;
|
307
|
+
padding-bottom:3px;
|
308
|
+
padding-left:8px;
|
309
|
+
text-indent:-8px
|
310
|
+
}
|
311
|
+
.tbos,.b{
|
312
|
+
font-weight:bold;
|
313
|
+
}
|
314
|
+
a:hover{
|
315
|
+
text-decoration:underline
|
316
|
+
}
|
317
|
+
#leftnav a:hover {
|
318
|
+
text-decoration:underline;
|
319
|
+
}
|
320
|
+
em{
|
321
|
+
font-weight:bold;
|
322
|
+
font-style:normal
|
323
|
+
}
|
324
|
+
|
325
|
+
.gac_wd{
|
326
|
+
right:-2px !important;
|
327
|
+
|
328
|
+
overflow:hidden
|
329
|
+
}
|
330
|
+
|
331
|
+
.fmg{
|
332
|
+
display:inline-block;
|
333
|
+
margin-top:7px;
|
334
|
+
padding-right:8px;
|
335
|
+
text-align-left;
|
336
|
+
vertical-align:top;
|
337
|
+
width:90px;
|
338
|
+
zoom:1
|
339
|
+
}
|
340
|
+
.star{
|
341
|
+
|
342
|
+
background-position:0 -120px;
|
343
|
+
|
344
|
+
height:9px;
|
345
|
+
overflow-hidden;
|
346
|
+
width:50px
|
347
|
+
}
|
348
|
+
.star div{
|
349
|
+
|
350
|
+
background-position:0 -110px
|
351
|
+
|
352
|
+
}
|
353
|
+
|
354
|
+
.pslires{
|
355
|
+
padding-top:6px;
|
356
|
+
overflow:hidden;
|
357
|
+
width:99.5%
|
358
|
+
}
|
359
|
+
.psliimg{
|
360
|
+
float:left;
|
361
|
+
height:90px;
|
362
|
+
text-align:top;
|
363
|
+
width:90px
|
364
|
+
}
|
365
|
+
.pslimain{
|
366
|
+
margin-left:100px;
|
367
|
+
margin-right:9em
|
368
|
+
}
|
369
|
+
.psliprice{
|
370
|
+
float:right;
|
371
|
+
width:7em
|
372
|
+
}
|
373
|
+
.psliprice b{
|
374
|
+
font-size:medium;
|
375
|
+
font-weight:bold;
|
376
|
+
white-space:nowrap
|
377
|
+
}
|
378
|
+
.psliimg img{
|
379
|
+
border:none
|
380
|
+
}
|
381
|
+
</style><script type="text/javascript">
|
382
|
+
window['hlprwt'] = function(t, ct) {
|
383
|
+
try {
|
384
|
+
if (t === window) {
|
385
|
+
t = window.event.srcElement;
|
386
|
+
while (t) {
|
387
|
+
if (t.href) {
|
388
|
+
break;
|
389
|
+
}
|
390
|
+
t = t.parentNode;
|
391
|
+
}
|
392
|
+
}
|
393
|
+
t.href = ct;
|
394
|
+
t.onmousedown = '';
|
395
|
+
} catch (e) {
|
396
|
+
}
|
397
|
+
return true;
|
398
|
+
}
|
399
|
+
window.google = { y: {} };
|
400
|
+
</script><script type="text/javascript"></script></head>
|
401
|
+
<body bgcolor="#ffffff" topmargin="3" marginheight="3" marginwidth="0"
|
402
|
+
><div id=gbar><nobr><b class=gb1>Web</b> <a class=gb1 href="http://www.google.com/search?q=link:www.google.com&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi">Images</a> <a class=gb1 href="http://www.google.com/search?q=link:www.google.com&um=1&ie=UTF-8&hl=en&tbo=u&tbm=vid&source=og&sa=N&tab=wv">Videos</a> <a class=gb1 href="http://maps.google.com/maps?q=link:www.google.com&um=1&ie=UTF-8&hl=en&sa=N&tab=wl">Maps</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="http://www.google.com/search?q=link:www.google.com&um=1&ie=UTF-8&hl=en&tbo=u&tbm=shop&source=og&sa=N&tab=wf">Shopping</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 style="text-decoration:none" href="http://www.google.com/intl/en/options/"><u>More</u> »</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a> | <a id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&continue=http://www.google.com/search%3Fq%3Dlink:www.google.com" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div><br clear="all"><table border="0" cellpadding="0" cellspacing="0" id="mn" style="position:relative"><tr><td rowspan="2" valign="top" width="157"><h1><a href="/webhp?hl=" id="logo" title="Go to Google Home"><img src="/images/nav_logo_hp2.png" alt="" height="222" style="border:0" width="167"></a></h1></td><td valign="top" style="padding-left:9px" width="559"><form name="gs" id="tsf" method="GET" action="/search" style="display:block;margin:0;background:none"><table border="0" cellpadding="0" cellspacing="0" id="sbhost" style="border-bottom:1px solid #e7e7e7;margin-top:18px;position:relative"><tr><td class="lst-td" width="100%" valign="bottom" style=""><div style="position:relative;zoom:1"><input autocomplete="off" class="lst" type="text" name="q" maxlength="2048" title="Search" value="link:www.google.com"></div></td><td><div class="ds"><div class="lsbb"><input type="submit" name="btnG" class="lsb" value="Search"></div></div></td></tr></table></form></td><td style="padding-left:5px" width="259"></td></tr><tr><td width="100%"><div id="subform_ctrl"><div style="float:right"><a class="fl" href="/advanced_search?q=link:www.google.com&hl=en&ie=UTF-8">Advanced Search</a></div><div>Results <b>1</b> - <b>10</b> of about <b>34,900</b> linking to <b>www.google.com</b>.</div></div></td><td></td></tr><tr><td valign="top" id="leftnav" style="padding:4px"><div id="modeselector" style="padding-bottom:4px"><ul><li class="mitem msel"><span class="micon" style="
|
403
|
+
background-position:-20px -132px
|
404
|
+
"></span>Everything</li></ul><a id="showmodes" class="q" href="/search?q=link%3Awww.google.com&hl=en&prmdo=1&sa=X"><span class="micon"></span><span class="msm">More</span></a></div><div class="lnsec"><h2 class="hd">Search Options</h2><ul id="tbd" class="med"></ul><a href="/search?q=link:www.google.com&hl=en&ie=UTF-8&tbo=1" class="q" style="display:block;margin-bottom:16px">Show options...</a></div></td><td valign="top"><div id="center_col"><div id="tbbc" style="background:#ebeff9;padding:8px;margin-bottom:4px"><b>Web</b></div><div id="res"><div id="ires"><ol><li class="g"><h3 class="r"><a href="http://www.google.nl/" onmousedown="return hlprwt(this, 'http://www.google.nl/')">Google</a></h3><div class="s">Het internet · Afbeeldingen · Video's · Maps · Nieuws · Shopping · Gmail · Meer · <br> Vertalen · Boeken · Scholar · Blogs · YouTube · Agenda · Foto's · Documenten <b>...</b><br><div><cite>www.google.nl/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:DUYA4reIvh8J:http://www.google.nl/+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.google.nl/+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.irishtimes.com/newspaper/breaking/2011/0930/breaking20.html" onmousedown="return hlprwt(this, 'http://www.irishtimes.com/newspaper/breaking/2011/0930/breaking20.html')">Google invests �75m in data centre - The Irish Times - Fri, Sep 30 <b>...</b></a></h3><div class="s">Sep 30, 2011 <b>...</b> Google is to invest �75 million in a new energy efficient data centre in west <br> Dublin.<br><div><cite>www.irishtimes.com/newspaper/breaking/2011/.../breaking20.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:MZ4M-gkm-ZgJ:http://www.irishtimes.com/newspaper/breaking/2011/0930/breaking20.html+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.irishtimes.com/newspaper/breaking/2011/0930/breaking20.html+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.linuxpackages.net/search_view.php?by=name&name=postfix&ver=" onmousedown="return hlprwt(this, 'http://www.linuxpackages.net/search_view.php?by=name&name=postfix&ver=')">LinuxPackages: Results</a></h3><div class="s">Results 1 - 15 <b>...</b> Slackware resources to help install and configure the Linux slackware <br> distribution, Email list, Discussion Board, Howtos, Contributed packages, <b>...</b><br><div><cite>www.linuxpackages.net/search_view.php?by=name...</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:2_b7ck_ob68J:http://www.linuxpackages.net/search_view.php?by=name&name=postfix&ver=+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.linuxpackages.net/search_view.php?by=name&name=postfix&ver=+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.quefuede.com/centrosciudades_eggc.html" onmousedown="return hlprwt(this, 'http://www.quefuede.com/centrosciudades_eggc.html')">PURCHENA-COLEGIOS-INSTITUTOS-CENTROS-DE-ENSE�ANZA</a></h3><div class="s">DIRECTORIO DE COLEGIOS, INSTITUTOS Y CENTROS DE ENSE�ANZA DE <br> PURCHENA,<br><div><cite>www.quefuede.com/centrosciudades_eggc.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:AUU0h5GOs1wJ:http://www.quefuede.com/centrosciudades_eggc.html+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.quefuede.com/centrosciudades_eggc.html+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.google.com.br/intl/pt-BR/earth/explore/showcase/ocean.html" onmousedown="return hlprwt(this, 'http://www.google.com.br/intl/pt-BR/earth/explore/showcase/ocean.html')">Google Earth: Oceano</a></h3><div class="s">Google Earth lets you fly anywhere on Earth to view satellite imagery, maps, <br> terrain, 3D buildings, from galaxies in outer space to the canyons of the ocean.<br><div><cite>www.google.com.br/intl/pt-BR/earth/explore/.../ocean.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:IwfVlgfEH2wJ:http://www.google.com.br/intl/pt-BR/earth/explore/showcase/ocean.html+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.google.com.br/intl/pt-BR/earth/explore/showcase/ocean.html+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.heroines.ca/search/search.html" onmousedown="return hlprwt(this, 'http://www.heroines.ca/search/search.html')">Search - heroines.ca, Women in Canadian History</a></h3><div class="s">Comprehensive site about women in Canadian history.<br><div><cite>www.heroines.ca/search/search.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:jcUvQGWsRBkJ:http://www.heroines.ca/search/search.html+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.heroines.ca/search/search.html+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.thuraya.com/support/selfservice" onmousedown="return hlprwt(this, 'http://www.thuraya.com/support/selfservice')">Self Service | Thuraya</a></h3><div class="s">Thuraya offers reliable satellite-based telecommunications solutions to travellers, <br> governments and corporate users in industries including the media, maritime <b>...</b><br><div><cite>www.thuraya.com/support/selfservice</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:y8N1LqUoKRkJ:http://www.thuraya.com/support/selfservice+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.thuraya.com/support/selfservice+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://rconversation.blogs.com/rconversation/google-1/" onmousedown="return hlprwt(this, 'http://rconversation.blogs.com/rconversation/google-1/')">RConversation: Google</a></h3><div class="s">Rebecca MacKinnon's erratic postings about work, reading, and ideas since <br> 2004.<br><div><cite>rconversation.blogs.com/rconversation/google-1/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:_31fpR3zrRMJ:http://rconversation.blogs.com/rconversation/google-1/+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://rconversation.blogs.com/rconversation/google-1/+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.google.com/intl/ru/earth/learn/3dbuildings.html" onmousedown="return hlprwt(this, 'http://www.google.com/intl/ru/earth/learn/3dbuildings.html')">Google Планета Земля: руководства по 3D-моделированию</a></h3><div class="s">Google Earth lets you fly anywhere on Earth to view satellite imagery, maps, <br> terrain, 3D buildings, from galaxies in outer space to the canyons of the ocean.<br><div><cite>www.google.com/intl/ru/earth/learn/3dbuildings.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:F7t0JFuAnkwJ:http://www.google.com/intl/ru/earth/learn/3dbuildings.html+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://www.google.com/intl/ru/earth/learn/3dbuildings.html+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://bulletins.psu.edu/bulletins/bluebook/ba_requirements.cfm?section=foreignLanguage" onmousedown="return hlprwt(this, 'http://bulletins.psu.edu/bulletins/bluebook/ba_requirements.cfm?section=foreignLanguage')">Undergraduate Degree Programs: Bachelor of Arts Degree <b>...</b></a></h3><div class="s">Bachelor of Arts degree majors require 12 to 24 credits distributed among five <br> categories. In addition, students are expected to complete credits required by <br> their <b>...</b><br><div><cite>bulletins.psu.edu/bulletins/bluebook/ba_requirements.cfm?...</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&q=cache:QUB9FL7oNusJ:http://bulletins.psu.edu/bulletins/bluebook/ba_requirements.cfm?section=foreignLanguage+link%3Awww.google.com&ct=clnk">Cached</a> - <a href="/search?hl=en&tbo=1&q=related:http://bulletins.psu.edu/bulletins/bluebook/ba_requirements.cfm?section=foreignLanguage+link%3Awww.google.com&sa=X">Similar</a></span></div></div></li></ol></div></div></div><div id="foot"><table align="center" border="0" cellpadding="0" cellspacing="0" id="nav"><tr valign="top"><td class="b" align="left"><span class="csb ch" style="background-position:-26px 0;width:18px"></span><b></b></td><td><span class="csb ch" style="background-position:-44px 0;width:16px"></span><b>1</b></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=10&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>2</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=20&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>3</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=30&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>4</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=40&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>5</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=50&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>6</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=60&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>7</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=70&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>8</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=80&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>9</a></td><td><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=90&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>10</a></td><td class="b" style="text-align:left"><a href="/search?hl=en&ie=UTF-8&ei=3GnlTvHQJObv0gGTpez9BQ&q=link:www.google.com&start=10&sa=N" style="text-align:left"><span class="csb ch" style="background-position:-76px 0;width:66px"></span><span style="display:block;margin-left:53px">Next</span></a></td></tr></table><div><div style="margin-top:22px"><form method="GET" action="/search"><table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-bottom:1px solid #e7e7e7;padding:8px 0 0;position:relative"><tr><td class="lst-td" width="100%" valign="bottom"><div style="position:relative;zoom:1"><input autocomplete="off" class="lst" type="text" name="q" maxlength="2048" value="link:www.google.com" title="Search"></div></td><td><div class="ds"><div class="lsbb"><input type="submit" name="btnG" class="lsb" value="Search"></div></div></td></tr></table><input type="hidden" name="hl" value="en"></form></div><p id="bfl" class="flc" style="margin:6px 0 0;text-align:center"><a href="/support/websearch/bin/answer.py?answer=134479&hl=en">Search Help</a></p></div><div id="fll" class="flc" style="margin:19px auto 19px auto;text-align:center"><a href="/">Google Home</a> <a href="
|
405
|
+
/intl/en/ads/">Advertising Programs</a> <a href="/services">Business Solutions</a> <a href="/intl/en/privacy.html">Privacy</a> <a href="/intl/en/about.html">About Google</a></div></div></td><td valign="top"></td></tr></table><script src="/extern_js/f/CgJlbhICdXMgACswWjgALCswDjgALCswCjgAmgICaGUsKzAYOAAsgAIEkAJc/bqYe1apFwH0.js"></script><script type="text/javascript">google.ac.c({"client":"serp","dh":true,"ds":"","host":"google.com","jsonp":true,"msgs":{"lcky":"I\u0026#39;m Feeling Lucky","lml":"Learn more","psrc":"This search was removed from your \u003Ca href=\"/history\"\u003EWeb History\u003C/a\u003E","psrl":"Remove","srch":"Google Search"},"ovr":{"d":1,"hl":1,"l":1,"o":1,"p":1,"ps":1,"sw":1,"vc":-3},"pq":"link:www.google.com"})</script></body></html>
|