geo-spider 0.2.1 → 0.2.3
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/History.txt +3 -2
- data/Manifest.txt +5 -9
- data/{README.txt → README.rdoc} +1 -1
- data/Rakefile +27 -3
- data/lib/geo-spider.rb +7 -4
- data/lib/geo-spider/exceptions.rb +1 -0
- data/lib/geo-spider/extractors/base.rb +1 -0
- data/lib/geo-spider/page.rb +3 -1
- data/lib/geo-spider/site.rb +1 -2
- data/spec/assets/pages/empty_body.html +527 -0
- data/spec/assets/pages/page_with_widget_links.html +1018 -0
- data/spec/assets/pages/postcode_in_url.html +511 -0
- data/spec/geo-spider/page_spec.rb +29 -0
- metadata +44 -19
- data/PostInstall.txt +0 -0
- data/config/hoe.rb +0 -73
- data/config/requirements.rb +0 -15
- data/lib/geo-spider/version.rb +0 -9
- data/setup.rb +0 -1585
- data/tasks/deployment.rake +0 -34
- data/tasks/environment.rake +0 -7
- data/tasks/website.rake +0 -9
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
History.txt
|
2
2
|
License.txt
|
3
3
|
Manifest.txt
|
4
|
-
|
5
|
-
README.txt
|
4
|
+
README.rdoc
|
6
5
|
Rakefile
|
7
|
-
config/hoe.rb
|
8
|
-
config/requirements.rb
|
9
6
|
lib/geo-spider.rb
|
7
|
+
lib/geo-spider/exceptions.rb
|
10
8
|
lib/geo-spider/extractors/base.rb
|
11
9
|
lib/geo-spider/extractors/master.rb
|
12
10
|
lib/geo-spider/extractors/microformat.rb
|
@@ -14,13 +12,14 @@ lib/geo-spider/extractors/postcode.rb
|
|
14
12
|
lib/geo-spider/location.rb
|
15
13
|
lib/geo-spider/page.rb
|
16
14
|
lib/geo-spider/site.rb
|
17
|
-
lib/geo-spider/version.rb
|
18
15
|
script/console
|
19
16
|
script/destroy
|
20
17
|
script/generate
|
21
|
-
|
18
|
+
spec/assets/pages/empty_body.html
|
22
19
|
spec/assets/pages/multiple_postcodes_and_microformats.html
|
23
20
|
spec/assets/pages/page_with_links.html
|
21
|
+
spec/assets/pages/page_with_widget_links.html
|
22
|
+
spec/assets/pages/postcode_in_url.html
|
24
23
|
spec/assets/pages/separate_microformat_and_postcode.html
|
25
24
|
spec/assets/pages/single_microformat.html
|
26
25
|
spec/assets/pages/single_postcode.html
|
@@ -28,7 +27,4 @@ spec/geo-spider/page_spec.rb
|
|
28
27
|
spec/geo-spider/site_spec.rb
|
29
28
|
spec/spec.opts
|
30
29
|
spec/spec_helper.rb
|
31
|
-
tasks/deployment.rake
|
32
|
-
tasks/environment.rake
|
33
30
|
tasks/rspec.rake
|
34
|
-
tasks/website.rake
|
data/{README.txt → README.rdoc}
RENAMED
@@ -13,7 +13,7 @@ The typical use case is spidering an entire blog for posts which contain geodata
|
|
13
13
|
|
14
14
|
Different methods for extracting geodata can be used. It currently supports UK postcodes and the abbr design pattern geo microformat <http://microformats.org/wiki/geo>.
|
15
15
|
|
16
|
-
It is current in use behind the scenes of the Geoblogomatic <http://www.geoblogomatic.com
|
16
|
+
It is current in use behind the scenes of the Geoblogomatic <http://www.geoblogomatic.com>.
|
17
17
|
|
18
18
|
== FEATURES/PROBLEMS:
|
19
19
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
require
|
2
|
-
require '
|
1
|
+
%w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
2
|
+
require File.dirname(__FILE__) + '/lib/geo-spider'
|
3
3
|
|
4
|
-
|
4
|
+
# Generate all the Rake tasks
|
5
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
6
|
+
$hoe = Hoe.new('geo-spider', GeoSpider::VERSION) do |p|
|
7
|
+
p.developer('Tom Taylor', 'tom@tomtaylor.co.uk')
|
8
|
+
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
9
|
+
p.rubyforge_name = 'geospider'
|
10
|
+
p.extra_deps = [
|
11
|
+
['hpricot','>= 0.6.164'],
|
12
|
+
['graticule', '>= 0.2.8']
|
13
|
+
]
|
14
|
+
p.extra_dev_deps = [
|
15
|
+
['newgem', ">= #{::Newgem::VERSION}"]
|
16
|
+
]
|
17
|
+
|
18
|
+
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
19
|
+
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
20
|
+
p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
|
21
|
+
p.rsync_args = '-av --delete --ignore-errors'
|
22
|
+
end
|
23
|
+
|
24
|
+
require 'newgem/tasks' # load /tasks/*.rake
|
25
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
26
|
+
|
27
|
+
# TODO - want other tests/tasks run by default? Add them to the list
|
28
|
+
# task :default => [:spec, :features]
|
data/lib/geo-spider.rb
CHANGED
@@ -1,23 +1,26 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__)) unless
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
|
+
|
4
5
|
require 'rubygems'
|
5
6
|
require 'hpricot'
|
6
7
|
require 'open-uri'
|
7
8
|
|
9
|
+
require 'geo-spider/exceptions'
|
8
10
|
require 'geo-spider/page'
|
9
11
|
require 'geo-spider/site'
|
10
12
|
|
11
13
|
module GeoSpider
|
12
|
-
|
14
|
+
|
15
|
+
VERSION = '0.2.3'
|
13
16
|
DEFAULT_USER_AGENT = 'geo-spider (http://github.com/tomtaylor/geo-spider)'
|
14
|
-
|
17
|
+
|
15
18
|
def self.user_agent
|
16
19
|
@user_agent || DEFAULT_USER_AGENT
|
17
20
|
end
|
18
|
-
|
21
|
+
|
19
22
|
def self.user_agent=(user_agent)
|
20
23
|
@user_agent = user_agent
|
21
24
|
end
|
22
|
-
|
25
|
+
|
23
26
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
class InvalidElement < Exception; end
|
data/lib/geo-spider/page.rb
CHANGED
@@ -9,6 +9,7 @@ module GeoSpider
|
|
9
9
|
|
10
10
|
DEFAULT_CONTENT_CSS_SELECTOR = "body" # Find locations within the entire body by default
|
11
11
|
DEFAULT_TITLE_CSS_SELECTOR = "title" # Use the title in the head by deault
|
12
|
+
DO_NOT_SPIDER_REGEXP = /(mp3|m4a|mov|jpg|png|gif|zip|pdf)$/i # do not spider these extensions by default
|
12
13
|
|
13
14
|
# Create a new page based on the URL.
|
14
15
|
|
@@ -17,6 +18,7 @@ module GeoSpider
|
|
17
18
|
@site = options[:site]
|
18
19
|
@content_css_selector = options[:content_css_selector] || DEFAULT_CONTENT_CSS_SELECTOR
|
19
20
|
@title_css_selector = options[:title_css_selector] || DEFAULT_TITLE_CSS_SELECTOR
|
21
|
+
@do_not_spider_regexp = options[:do_not_spider_regexp] || DO_NOT_SPIDER_REGEXP
|
20
22
|
hpricot_doc
|
21
23
|
end
|
22
24
|
|
@@ -63,7 +65,7 @@ module GeoSpider
|
|
63
65
|
end
|
64
66
|
|
65
67
|
def rejected_url?(url_to_test)
|
66
|
-
url_to_test =~
|
68
|
+
url_to_test =~ @do_not_spider_regexp
|
67
69
|
end
|
68
70
|
|
69
71
|
def normalize_url(link_url)
|
data/lib/geo-spider/site.rb
CHANGED
@@ -12,7 +12,6 @@ module GeoSpider
|
|
12
12
|
|
13
13
|
def each_page(options = {}, &block)
|
14
14
|
regexp = options.delete(:regexp) || DEFAULT_REGEXP
|
15
|
-
|
16
15
|
options = options.merge( { :site => self } )
|
17
16
|
|
18
17
|
queue = [self.url.to_s]
|
@@ -28,7 +27,7 @@ module GeoSpider
|
|
28
27
|
seen << url
|
29
28
|
next_links = (page.internal_links - seen - queue) # only add internal links that we've not seen or already have queued.
|
30
29
|
queue.concat(next_links)
|
31
|
-
rescue Timeout::Error, OpenURI::HTTPError
|
30
|
+
rescue Timeout::Error, OpenURI::HTTPError, InvalidElement
|
32
31
|
next
|
33
32
|
end
|
34
33
|
end
|
@@ -0,0 +1,527 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<meta name="generator" content="http://www.typepad.com/" />
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
<link rel="stylesheet" href="http://www.stalbansblog.co.uk/styles.css" type="text/css" media="screen" />
|
13
|
+
<link rel="stylesheet" href="/.shared-typepad/themes/common/print.css" type="text/css" media="print" />
|
14
|
+
<link rel="alternate" type="application/atom+xml" title="Posts on 'St. Albans Blog' (Atom)" href="http://www.stalbansblog.co.uk/atom.xml" />
|
15
|
+
<link rel="alternate" type="application/rss+xml" title="Posts on 'St. Albans Blog' (RSS 1.0)" href="http://www.stalbansblog.co.uk/index.rdf" />
|
16
|
+
<link rel="alternate" type="application/rss+xml" title="Posts on 'St. Albans Blog' (RSS 2.0)" href="http://www.stalbansblog.co.uk/rss.xml" />
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
<title>St. Albans Blog: Italian Market</title>
|
22
|
+
<link rel="start" href="http://www.stalbansblog.co.uk/" title="Home" />
|
23
|
+
<link rel="prev" href="http://www.stalbansblog.co.uk/2008/07/little-wonders.html?no_prefetch=1" title="Little Wonders - independent Toy Shop" />
|
24
|
+
<link rel="next" href="http://www.stalbansblog.co.uk/2008/07/aylett-nursery.html?no_prefetch=1" title="Aylett Nursery St. Albans" />
|
25
|
+
|
26
|
+
|
27
|
+
</head>
|
28
|
+
|
29
|
+
<body class="layout-three-column">
|
30
|
+
|
31
|
+
<div id="container">
|
32
|
+
<div id="container-inner" class="pkg">
|
33
|
+
|
34
|
+
<!-- banner -->
|
35
|
+
<div id="banner">
|
36
|
+
<div id="banner-inner" class="pkg">
|
37
|
+
|
38
|
+
<h1 id="banner-header"><a href="http://www.stalbansblog.co.uk/" accesskey="1">St. Albans Blog</a></h1>
|
39
|
+
<h2 id="banner-description">St. Albans blog contains information and independent reviews about living, shopping, eating and drinking in St. Albans. It's authored primarily by a man in his 30's who occasionally begs for posts from other local bloggers. No cash or other rewards have ever been received in an exchange for a review.</h2>
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
<div id="pagebody">
|
46
|
+
<div id="pagebody-inner" class="pkg">
|
47
|
+
<div id="alpha">
|
48
|
+
<div id="alpha-inner" class="pkg">
|
49
|
+
|
50
|
+
<!-- sidebar1 -->
|
51
|
+
|
52
|
+
|
53
|
+
<div class="module-typelist module">
|
54
|
+
<h2 class="module-header">Map of Free Wifi in St. Albans</h2>
|
55
|
+
<div class="typelist-plain module-content">
|
56
|
+
<ul class="module-list">
|
57
|
+
<li class="module-list-item"><div class="typelist-note"><center><iframe width="130" height="150" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps/ms?ie=UTF8&hl=en&s=AARTsJrbAs_r5IX1HX9M6iqPXQhAxB9e5A&msa=0&msid=103236823974929135255.0004372dd3f9a1d1e65bf&ll=51.750733,-0.342636&spn=0.00797,0.011158&z=14&output=embed"></iframe><br /><small><a href="http://maps.google.co.uk/maps/ms?ie=UTF8&hl=en&msa=0&msid=103236823974929135255.0004372dd3f9a1d1e65bf&ll=51.750733,-0.342636&spn=0.00797,0.011158&z=14&source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></center></div></li>
|
58
|
+
|
59
|
+
</ul>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
|
63
|
+
<div class="module-typelist module">
|
64
|
+
<h2 class="module-header">Photos of St. Albans</h2>
|
65
|
+
<div class="typelist-plain module-content">
|
66
|
+
<ul class="module-list">
|
67
|
+
<li class="module-list-item"><div class="typelist-note"><!-- Start of Flickr Badge -->
|
68
|
+
<center><style type="text/css">
|
69
|
+
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;}
|
70
|
+
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}
|
71
|
+
#flickr_icon_td {padding:0 5px 0 0 !important;}
|
72
|
+
.flickr_badge_image {text-align:center !important;}
|
73
|
+
.flickr_badge_image img {border: 1px solid black !important;}
|
74
|
+
#flickr_badge_uber_wrapper {width:150px;}
|
75
|
+
#flickr_www {display:block; text-align:center; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}
|
76
|
+
#flickr_badge_uber_wrapper a:hover,
|
77
|
+
#flickr_badge_uber_wrapper a:link,
|
78
|
+
#flickr_badge_uber_wrapper a:active,
|
79
|
+
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;}
|
80
|
+
#flickr_badge_wrapper {background-color:#ffffff;border: solid 1px #000000}
|
81
|
+
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;}
|
82
|
+
</style>
|
83
|
+
<table id="flickr_badge_uber_wrapper" border="0" cellpadding="0" cellspacing="10"><tr><td><a id="flickr_www" href="http://www.flickr.com">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><table border="0" id="flickr_badge_wrapper" cellpadding="0" cellspacing="10">
|
84
|
+
<script src="http://www.flickr.com/badge_code_v2.gne?show_name=1&count=3&display=latest&size=t&layout=v&source=all_tag&tag=St.+Albans&user=40571485%40N00" type="text/javascript"></script>
|
85
|
+
<tr>
|
86
|
+
<td id="flickr_badge_source" valign="center" align="center">
|
87
|
+
<table border="0" cellpadding="0" cellspacing="0"><tr>
|
88
|
+
<td id="flickr_badge_source_txt">More <a href="http://www.flickr.com/photos/tags/St. Albans/">Flickr photos tagged with St. Albans</a></td>
|
89
|
+
</tr></table>
|
90
|
+
</td>
|
91
|
+
</tr>
|
92
|
+
</table>
|
93
|
+
</td></tr></table></center>
|
94
|
+
<!-- End of Flickr Badge --></div></li>
|
95
|
+
|
96
|
+
</ul>
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div class="module-typelist module">
|
101
|
+
<h2 class="module-header">Local Bloggers</h2>
|
102
|
+
<div class="module-content">
|
103
|
+
<ul class="module-list">
|
104
|
+
<li class="module-list-item"><a href="http://wwasightings.blogspot.com/">Watercress Wildlife Sightings</a></li>
|
105
|
+
<li class="module-list-item"><a href="http://tall-rich.livejournal.com/">Volumes from Verulamium</a></li>
|
106
|
+
<li class="module-list-item"><a href="http://uhwatch.com/">UH Watch (unofficial herts uni)</a></li>
|
107
|
+
<li class="module-list-item"><a href="http://www.trunkguy.com">TrunkGuy.com</a></li>
|
108
|
+
<li class="module-list-item"><a href="http://lifeandtimesofmrsb.blogspot.com/">the life and times of Mrs.B</a></li>
|
109
|
+
<li class="module-list-item"><a href="http://www.snoo.net">The Daily Snoo</a></li>
|
110
|
+
<li class="module-list-item"><a href="http://www.thebroadsheetrag.co.uk/">The Broadsheet Rag</a></li>
|
111
|
+
<li class="module-list-item"><a href="http://tescocampaign.blogspot.com">Stop Tesco (St. Albans)</a></li>
|
112
|
+
<li class="module-list-item"><a href="http://www.qype.co.uk/people/StephaniexXx/">StephaniexXx on Qype</a></li>
|
113
|
+
<li class="module-list-item"><a href="http://stalbanscyclecampaign.blogspot.com/">St. Albans Cycle Campaign</a></li>
|
114
|
+
<li class="module-list-item"><a href="http://www.shedworking.co.uk">Shedworking</a></li>
|
115
|
+
<li class="module-list-item"><a href="http://radioverulam.blogspot.com/">Radio Verulam Blog</a></li>
|
116
|
+
<li class="module-list-item"><a href="http://www.pompomemporium.com">Pom Pom Emporium</a></li>
|
117
|
+
<li class="module-list-item"><a href="http://planetmike.blogspot.com/">PlanetMike</a></li>
|
118
|
+
<li class="module-list-item"><a href="http://nontrivialsolutions.blogspot.com/">Non-trivial Solutions</a></li>
|
119
|
+
<li class="module-list-item"><a href="http://maban.co.uk/index.php/blog/">maban (designer)</a></li>
|
120
|
+
<li class="module-list-item"><a href="http://lifeinthenhs.blogspot.com/">Life in the NHS</a></li>
|
121
|
+
<li class="module-list-item"><a href="http://kateallan.blogspot.com/">Kate Allan</a></li>
|
122
|
+
<li class="module-list-item"><a href="http://www.journeytorussia.co.uk/">Journey To Russia</a></li>
|
123
|
+
<li class="module-list-item"><a href="http://jonmell.co.uk">Jon Mell's Web 2.0 ideas & strategy</a></li>
|
124
|
+
<li class="module-list-item"><a href="http://www.hertsad.co.uk/flatfiles/weblogs/default.aspx">Herts Ad blogs</a></li>
|
125
|
+
<li class="module-list-item"><a href="http://digitalevangelist.blogspot.com/">Digital Evangelist</a></li>
|
126
|
+
<li class="module-list-item"><a href="http://www.neiloxtoby.com/blog/">Detritus</a></li>
|
127
|
+
<li class="module-list-item"><a href="http://www.cybersoc.com">cybersoc.com</a></li>
|
128
|
+
<li class="module-list-item"><a href="http://www.cuddlybear.org/">Cuddly Bear</a></li>
|
129
|
+
<li class="module-list-item"><a href="http://www.carlknibbs.net">Carl's Product Management Blog</a></li>
|
130
|
+
<li class="module-list-item"><a href="http://biztwozero.com/btz/">Business Two Zero</a></li>
|
131
|
+
<li class="module-list-item"><a href="http://beingamummy.blogspot.com/">Being a Mummy</a></li>
|
132
|
+
<li class="module-list-item"><a href="http://alwaysthecritic.typepad.com/">Always The Critic</a></li>
|
133
|
+
<li class="module-list-item"><a href="http://ornsfan.blogspot.com/">8th Worst Type of Fan</a></li>
|
134
|
+
|
135
|
+
</ul>
|
136
|
+
</div>
|
137
|
+
</div>
|
138
|
+
|
139
|
+
<div class="module-widget module" id="widget-Yahoo__Pipes_yahoo_pipes">
|
140
|
+
<div class="module-content">
|
141
|
+
<script src="http://pipes.yahoo.com/js/listbadge.js">{"pipe_id":"HPLV4t_e3BGEKJqjX0sBXw","_btype":"list","width":"196","height":"200"}</script>
|
142
|
+
</div>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
</div>
|
149
|
+
</div>
|
150
|
+
<div id="beta">
|
151
|
+
<div id="beta-inner" class="pkg">
|
152
|
+
<!-- content nav -->
|
153
|
+
<p class="content-nav">
|
154
|
+
<a href="http://www.stalbansblog.co.uk/2008/07/little-wonders.html">« Little Wonders - independent Toy Shop</a> |
|
155
|
+
<a href="http://www.stalbansblog.co.uk/">Main</a>
|
156
|
+
| <a href="http://www.stalbansblog.co.uk/2008/07/aylett-nursery.html">Aylett Nursery St. Albans »</a>
|
157
|
+
</p>
|
158
|
+
|
159
|
+
<!-- entry -->
|
160
|
+
|
161
|
+
|
162
|
+
<div class="entry" id="entry-52909448">
|
163
|
+
<h3 class="entry-header">Italian Market</h3>
|
164
|
+
|
165
|
+
<div class="entry-content">
|
166
|
+
<div class="entry-body">
|
167
|
+
<p><a href="http://cybersoc.blogs.com/photos/uncategorized/2008/07/19/italian_market.jpg"><img class="image-full" src="http://cybersoc.blogs.com/photos/uncategorized/2008/07/19/italian_market.jpg" border="0" alt="" /></a></p>
|
168
|
+
|
169
|
+
<p><br />
|
170
|
+
<br style="clear: left;" /></p>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
<script src="http://feeds.feedburner.com/~s/StAlbansBlog?i=http%3A%2F%2Fwww.stalbansblog.co.uk%2F2008%2F07%2Fitalian-marke-1.html" type="text/javascript"></script>
|
174
|
+
|
175
|
+
</div>
|
176
|
+
<div class="entry-footer">
|
177
|
+
<p class="entry-footer-info">
|
178
|
+
<span class="post-footers">07/19/2008 </span> <span class="separator">|</span> <a class="permalink" href="http://www.stalbansblog.co.uk/2008/07/italian-marke-1.html">Permalink</a>
|
179
|
+
</p>
|
180
|
+
|
181
|
+
<!-- technorati tags -->
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
<!-- post footer links -->
|
186
|
+
|
187
|
+
|
188
|
+
</div>
|
189
|
+
</div>
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
<a id="comments"></a>
|
194
|
+
<div class="comments" id="all-comments">
|
195
|
+
<h3 class="comments-header">Comments</h3>
|
196
|
+
|
197
|
+
<div class="comments-content" id="comments-content">
|
198
|
+
|
199
|
+
<!-- comment list -->
|
200
|
+
|
201
|
+
|
202
|
+
</div>
|
203
|
+
|
204
|
+
</div>
|
205
|
+
|
206
|
+
<!-- comment form -->
|
207
|
+
<script type="text/javascript" src="/.shared-typepad/js/comments.js"></script>
|
208
|
+
<script type="text/javascript">hostName = '.co.uk';</script>
|
209
|
+
|
210
|
+
<form id="comment-form"
|
211
|
+
method="post" action="http://www.typepad.com/t/comments">
|
212
|
+
<input type="hidden" name="entry_id" value="52909448" />
|
213
|
+
<input type="hidden" name="user_id" value="333875" />
|
214
|
+
|
215
|
+
<div class="comments-open">
|
216
|
+
<h2 class="comments-open-header">Post a comment</h2>
|
217
|
+
<div class="comments-open-content">
|
218
|
+
|
219
|
+
|
220
|
+
<script type="text/javascript" src="http://www.typepad.com/t/comments?__mode=check_login"></script>
|
221
|
+
<script type="text/javascript">
|
222
|
+
checkLocal();
|
223
|
+
</script>
|
224
|
+
|
225
|
+
<p id="comments-open-login" style="display: block;">
|
226
|
+
If you have a TypeKey or TypePad account, please
|
227
|
+
<a href="http://www.typepad.com/t/comments?__mode=signin_redir&user_id=333875&entry_id=52909448">Sign In</a>
|
228
|
+
|
229
|
+
</p>
|
230
|
+
|
231
|
+
<p id="comments-open-logout" style="display: none;">
|
232
|
+
You are currently signed in as
|
233
|
+
<span id="commenter-name">(nobody)</span>.
|
234
|
+
<a href="http://www.typepad.com/t/comments?__mode=signout&user_id=333875&entry_id=52909448">Sign Out</a>
|
235
|
+
</p>
|
236
|
+
|
237
|
+
|
238
|
+
<div id="comments-open-data">
|
239
|
+
<p>
|
240
|
+
<label for="comment-author">Name:</label>
|
241
|
+
<input id="comment-author" name="author" size="30" />
|
242
|
+
</p>
|
243
|
+
<p>
|
244
|
+
<label for="comment-email">Email Address: <span class="comment-form-note">(Not displayed with comment.)</span></label>
|
245
|
+
<input id="comment-email" name="email" size="30" />
|
246
|
+
</p>
|
247
|
+
<p>
|
248
|
+
<label for="comment-url">URL:</label>
|
249
|
+
<input id="comment-url" name="url" size="30" />
|
250
|
+
</p>
|
251
|
+
<p>
|
252
|
+
<label for="comment-bake-cookie"><input type="checkbox"
|
253
|
+
id="comment-bake-cookie" name="bakecookie" value="1" />
|
254
|
+
Remember personal info?</label>
|
255
|
+
</p>
|
256
|
+
</div>
|
257
|
+
|
258
|
+
|
259
|
+
<p id="comments-open-text">
|
260
|
+
|
261
|
+
|
262
|
+
<label for="comment-text">Comments:</label>
|
263
|
+
<textarea id="comment-text" name="text" rows="10" cols="30" onkeyup="maxTextarea(this, 64000)"></textarea>
|
264
|
+
</p>
|
265
|
+
</div>
|
266
|
+
|
267
|
+
<div id="comments-open-footer" class="comments-open-footer">
|
268
|
+
|
269
|
+
|
270
|
+
<input type="submit" name="preview" id="comment-preview" value=" Preview " />
|
271
|
+
<input type="submit" name="post" id="comment-post" value=" Post " onclick="disableButton(this)" />
|
272
|
+
</div>
|
273
|
+
</div>
|
274
|
+
</form>
|
275
|
+
|
276
|
+
<script type="text/javascript">
|
277
|
+
commentSignIn();
|
278
|
+
</script>
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
</div>
|
289
|
+
</div>
|
290
|
+
<div id="gamma">
|
291
|
+
<div id="gamma-inner" class="pkg">
|
292
|
+
|
293
|
+
<!-- sidebar2 -->
|
294
|
+
|
295
|
+
|
296
|
+
<div class="module-typelist module">
|
297
|
+
<h2 class="module-header">Search St. Albans Blog</h2>
|
298
|
+
<div class="typelist-plain module-content">
|
299
|
+
<ul class="module-list">
|
300
|
+
<li class="module-list-item"><div class="typelist-note"><style type="text/css">
|
301
|
+
@import url(http://www.google.com/cse/api/branding.css);
|
302
|
+
</style>
|
303
|
+
<div class="cse-branding-right" style="background-color:#FFFFFF;color:#000000">
|
304
|
+
<div class="cse-branding-form">
|
305
|
+
<form action="http://www.google.co.uk/cse" id="cse-search-box">
|
306
|
+
<div>
|
307
|
+
<input type="hidden" name="cx" value="partner-pub-3598802846550102:23hyca7xpm7" />
|
308
|
+
<input type="hidden" name="ie" value="ISO-8859-1" />
|
309
|
+
<input type="text" name="q" size="30" />
|
310
|
+
<input type="submit" name="sa" value="Search" />
|
311
|
+
</div>
|
312
|
+
</form>
|
313
|
+
</div>
|
314
|
+
<div class="cse-branding-logo">
|
315
|
+
<img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" />
|
316
|
+
</div>
|
317
|
+
<div class="cse-branding-text">
|
318
|
+
Custom Search
|
319
|
+
</div>
|
320
|
+
</div>
|
321
|
+
</div></li>
|
322
|
+
|
323
|
+
</ul>
|
324
|
+
</div>
|
325
|
+
</div>
|
326
|
+
|
327
|
+
<div class="module-typelist module">
|
328
|
+
<h2 class="module-header">St. Albans Blog Ads</h2>
|
329
|
+
<div class="typelist-plain module-content">
|
330
|
+
<ul class="module-list">
|
331
|
+
<li class="module-list-item"><div class="typelist-note"><script type="text/javascript"><!--
|
332
|
+
google_ad_client = "pub-3598802846550102";
|
333
|
+
/* 120x240, created 10/15/08 */
|
334
|
+
google_ad_slot = "1103414690";
|
335
|
+
google_ad_width = 120;
|
336
|
+
google_ad_height = 240;
|
337
|
+
//-->
|
338
|
+
</script>
|
339
|
+
<script type="text/javascript"
|
340
|
+
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
341
|
+
</script></div></li>
|
342
|
+
|
343
|
+
</ul>
|
344
|
+
</div>
|
345
|
+
</div>
|
346
|
+
|
347
|
+
<div class="module-widget module" id="widget-FeedBurner_standardSmall">
|
348
|
+
<div class="module-content">
|
349
|
+
<p><a href="http://feeds.feedburner.com/StAlbansBlog" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/StAlbansBlog" rel="alternate" type="application/rss+xml">Subscribe via RSS</a></p>
|
350
|
+
</div>
|
351
|
+
</div><div class="module-widget module" id="widget-AddThis_Button_add_this_bookmark_button">
|
352
|
+
<div class="module-content">
|
353
|
+
<a href="http://www.addthis.com/bookmark.php" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&pub=JHK9N571DB5MNRCZ&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" title="Bookmark using any bookmark manager!" target="_blank"><img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="AddThis Social Bookmark Button" /></a>
|
354
|
+
</div>
|
355
|
+
</div><div class="module-typelist module">
|
356
|
+
<h2 class="module-header">Send a Voice Message</h2>
|
357
|
+
<div class="typelist-plain module-content">
|
358
|
+
<ul class="module-list">
|
359
|
+
<li class="module-list-item"><div class="typelist-note"><center><a href="http://odeo.com/sendmeamessage/Cybersoc" target="_blank"><img alt="Send Me A Voice Message" border="0" height="50" src="http://odeo.com/img/badge-send-me-med-green.gif" width="80" /></a></center></div></li>
|
360
|
+
|
361
|
+
</ul>
|
362
|
+
</div>
|
363
|
+
</div>
|
364
|
+
|
365
|
+
<div class="module-categories module">
|
366
|
+
<h2 class="module-header"><a href="http://www.stalbansblog.co.uk/archives.html">Categories</a></h2>
|
367
|
+
<div class="module-content">
|
368
|
+
<ul class="module-list">
|
369
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/food_in_st_albans/">Food in St. Albans</a></li>
|
370
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/free_wifi_in_st_albans/">Free Wifi in St. Albans</a></li>
|
371
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/hotels_in_st_albans/">Hotels in St. Albans</a></li>
|
372
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/nightlife_in_st_albans/">Nightlife in St. Albans</a></li>
|
373
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/property_in_st_albans/">Property in St. Albans</a></li>
|
374
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/pubs_in_st_albans/">Pubs in St. Albans</a></li>
|
375
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/recreation_in_st_albans/">Recreation in St. Albans</a></li>
|
376
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/restaurants_in_st_albans/">Restaurants in St. Albans</a></li>
|
377
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/services_in_st_albans/">Services in St. Albans</a></li>
|
378
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/shopping_in_st_albans/">Shopping in St. Albans</a></li>
|
379
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/specialist_food_and_wine_in_st_albans/">Specialist Food and Wine in St. Albans</a></li>
|
380
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/st_albans_estate_agents/">St. Albans Estate Agents</a></li>
|
381
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/st_albans/">St. Albans Information</a></li>
|
382
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/st_albans_shops_for_children/">St. Albans Shops for Children</a></li>
|
383
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/things_to_do_close_to_st_albans/">Things to do Close to St. Albans</a></li>
|
384
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/things_to_do_with_kids_in_st_albans/">Things to do with Kids in St. Albans</a></li>
|
385
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/tourism_in_st_albans/">Tourism in St. Albans</a></li>
|
386
|
+
|
387
|
+
</ul>
|
388
|
+
</div>
|
389
|
+
</div>
|
390
|
+
<div class="module-recent-comments module">
|
391
|
+
<h2 class="module-header">Recent Comments</h2>
|
392
|
+
<div class="module-content">
|
393
|
+
<ul class="module-list">
|
394
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-135144145">Sam</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
395
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-135031153">tbrrob</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
396
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-134994173">Robin</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
397
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-134990213">Richard</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
398
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html#comment-134987561">Neil</a> on <a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html">St. Albans' Newest Restaurant - Kashu</a></li>
|
399
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-134913585">Todd</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
400
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html#comment-134876863">alex</a> on <a href="http://www.stalbansblog.co.uk/2008/10/st-albans-blogg.html">St. Albans Blogger Meet-Up</a></li>
|
401
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html#comment-134798889">Robin</a> on <a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html">St. Albans' Newest Restaurant - Kashu</a></li>
|
402
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html#comment-134790587">Graham Anderson</a> on <a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html">St. Albans' Newest Restaurant - Kashu</a></li>
|
403
|
+
<li class="module-list-item"><a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html#comment-134389575">Jane</a> on <a href="http://www.stalbansblog.co.uk/2008/08/new-restaurant.html">St. Albans' Newest Restaurant - Kashu</a></li>
|
404
|
+
|
405
|
+
</ul>
|
406
|
+
</div>
|
407
|
+
</div><div class="module-feed module">
|
408
|
+
<h2 class="module-header">BBC Beds, Herts and Bucks</h2>
|
409
|
+
<div class="module-content" id="feed-10f1745e849f46f67f63863b9ebde1a80a34c8e3">
|
410
|
+
<script type="text/javascript" defer="defer" src="http://cybersoc.blogs.com/.services/content?src=Feed:http%3A%2F%2Fnewsrss.bbc.co.uk%2Frss%2Fnewsonline_uk_edition%2Fengland%2Fbeds%2Fbucks%2Fherts%2Frss.xml,5"></script>
|
411
|
+
</div>
|
412
|
+
</div>
|
413
|
+
<div class="module-typelist module">
|
414
|
+
<h2 class="module-header">News and Weather</h2>
|
415
|
+
<div class="module-content">
|
416
|
+
<ul class="module-list">
|
417
|
+
<li class="module-list-item"><a title="" href="http://www.bbc.co.uk/hertfordshire">BBC 3 Counties</a></li>
|
418
|
+
<li class="module-list-item"><a title="" href="http://www.bbc.co.uk/weather/5day.shtml?id=1035">BBC Weather for St. Albans</a></li>
|
419
|
+
<li class="module-list-item"><a title="" href="http://www.hertsad.co.uk/">The Herts Advertiser</a></li>
|
420
|
+
<li class="module-list-item"><a title="" href="http://www.stalbansobserver.co.uk/">St. Albans Observer</a></li>
|
421
|
+
<li class="module-list-item"><a title="" href="http://www.thisishertfordshire.co.uk/news/stalbans/">This Is Hertfordshire</a></li>
|
422
|
+
|
423
|
+
</ul>
|
424
|
+
</div>
|
425
|
+
</div>
|
426
|
+
|
427
|
+
<div class="module-typelist module">
|
428
|
+
<h2 class="module-header">St. Albans Guides</h2>
|
429
|
+
<div class="module-content">
|
430
|
+
<ul class="module-list">
|
431
|
+
<li class="module-list-item"><a title="" href="http://stalbansguide.users.btopenworld.com/">Dave's Guide</a></li>
|
432
|
+
<li class="module-list-item"><a title="" href="http://www.knowhere.co.uk/64.html">Knowhere Guide to St Albans</a></li>
|
433
|
+
|
434
|
+
</ul>
|
435
|
+
</div>
|
436
|
+
</div>
|
437
|
+
|
438
|
+
<div class="module-typelist module">
|
439
|
+
<h2 class="module-header">St. Albans Government and Info</h2>
|
440
|
+
<div class="module-content">
|
441
|
+
<ul class="module-list">
|
442
|
+
<li class="module-list-item"><a title="" href="http://www.hertsparts.nhs.uk/">Hertfordshire Partnership NHS Trust :</a></li>
|
443
|
+
<li class="module-list-item"><a title="" href="http://www.herts.police.uk/">Hertfordshire Constabulary</a></li>
|
444
|
+
<li class="module-list-item"><a title="" href="http://www.hertsmuseums.org.uk/">Museums in Hertfordshire</a></li>
|
445
|
+
<li class="module-list-item"><a title="" href="http://www.herts.ac.uk">University of Hertfordshire</a></li>
|
446
|
+
<li class="module-list-item"><a title="" href="http://www.hertsdirect.org">hertsdirect.org</a></li>
|
447
|
+
|
448
|
+
</ul>
|
449
|
+
</div>
|
450
|
+
</div>
|
451
|
+
|
452
|
+
<div class="module-typelist module">
|
453
|
+
<h2 class="module-header">Sport in St. Albans</h2>
|
454
|
+
<div class="module-content">
|
455
|
+
<ul class="module-list">
|
456
|
+
<li class="module-list-item"><a title="" href="http://www.stalbans.gov.uk/leisure/sports/sportlist.php?sport=Football">football clubs (list)</a></li>
|
457
|
+
<li class="module-list-item"><a title="" href="http://www.hertsba.com/">Herts Bowling Assoc</a></li>
|
458
|
+
<li class="module-list-item"><a title="" href="http://www.herts-squash.org.uk/">Herts Squash Rackets Assoc</a></li>
|
459
|
+
<li class="module-list-item"><a title="" href="http://www.hertsarchery.org.uk/">Herts Archery Assoc</a></li>
|
460
|
+
<li class="module-list-item"><a title="" href="http://www.hertsasa.org.uk/">Herts ASA (Swimming)</a></li>
|
461
|
+
|
462
|
+
</ul>
|
463
|
+
</div>
|
464
|
+
</div>
|
465
|
+
|
466
|
+
<div class="module-typelist module">
|
467
|
+
<h2 class="module-header">St.AlbansBlogBits</h2>
|
468
|
+
<div class="typelist-plain module-content">
|
469
|
+
<ul class="module-list">
|
470
|
+
<li class="module-list-item"><div class="typelist-note"><a href="http://www.britblog.com/" title="British Blog Directory."><img src="http://img.britblog.com/icons/icon_britblog_80x15.gif" width="80" height="15" border="0" alt="British Blog Directory."></a></div></li>
|
471
|
+
<li class="module-list-item"><div class="typelist-note"><!-- Start of StatCounter Code -->
|
472
|
+
<script type="text/javascript" language="javascript">
|
473
|
+
var sc_project=2322329;
|
474
|
+
var sc_invisible=0;
|
475
|
+
var sc_partition=21;
|
476
|
+
var sc_security="f4dc7df9";
|
477
|
+
</script>
|
478
|
+
|
479
|
+
<script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/counter.js"></script><noscript><a href="http://www.statcounter.com/" target="_blank"><img src="http://c22.statcounter.com/counter.php?sc_project=2322329&java=0&security=f4dc7df9&invisible=0" alt="free html hit counter" border="0"></a> </noscript>
|
480
|
+
<!-- End of StatCounter Code -->
|
481
|
+
|
482
|
+
<script type="text/javascript" src="http://embed.technorati.com/embed/j54uvzisw3.js"></script>
|
483
|
+
|
484
|
+
<script type="text/javascript">
|
485
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
486
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
487
|
+
</script>
|
488
|
+
<script type="text/javascript">
|
489
|
+
var pageTracker = _gat._getTracker("UA-5968608-1");
|
490
|
+
pageTracker._trackPageview();
|
491
|
+
</script></div></li>
|
492
|
+
|
493
|
+
</ul>
|
494
|
+
</div>
|
495
|
+
</div>
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
</div>
|
503
|
+
</div>
|
504
|
+
</div>
|
505
|
+
</div>
|
506
|
+
|
507
|
+
</div>
|
508
|
+
</div>
|
509
|
+
|
510
|
+
<script type="text/javascript">
|
511
|
+
<!--
|
512
|
+
var extra_happy = Math.floor(1000000000 * Math.random());
|
513
|
+
document.write('<img src="http://www.typepad.com/t/stats?blog_id=290414&user_id=333875&page=' + escape(location.href) + '&referrer=' + escape(document.referrer) + '&i=' + extra_happy + '" width="1" height="1" alt="" style="position: absolute; top: 0; left: 0;" />');
|
514
|
+
// -->
|
515
|
+
</script>
|
516
|
+
|
517
|
+
<!-- Start Quantcast tag -->
|
518
|
+
<script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>
|
519
|
+
<script type="text/javascript">_qoptions = { tags:"typepad.extended" }; _qacct="p-fcYWUmj5YbYKM"; quantserve();</script>
|
520
|
+
<noscript>
|
521
|
+
<a href="http://www.quantcast.com/p-fcYWUmj5YbYKM" target="_blank"><img src="http://pixel.quantserve.com/pixel/p-fcYWUmj5YbYKM.gif?tags=typepad.extended" style="display: none" border="0" height="1" width="1" alt="Quantcast"/></a>
|
522
|
+
</noscript>
|
523
|
+
<!-- End Quantcast tag -->
|
524
|
+
</body>
|
525
|
+
</html>
|
526
|
+
<!-- ph=1 -->
|
527
|
+
<!-- nhm:from_kauri -->
|