libcraigscrape 0.6.5 → 0.7.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.
Files changed (30) hide show
  1. data/CHANGELOG +17 -0
  2. data/Rakefile +1 -1
  3. data/bin/craigwatch +10 -10
  4. data/bin/report_mailer/craigslist_report.html.erb +2 -2
  5. data/bin/report_mailer/craigslist_report.plain.erb +2 -2
  6. data/lib/libcraigscrape.rb +585 -342
  7. data/test/geolisting_samples/geo_listing_ca070209.html +76 -0
  8. data/test/geolisting_samples/geo_listing_ca_sk070209.html +31 -0
  9. data/test/geolisting_samples/geo_listing_cn070209.html +35 -0
  10. data/test/geolisting_samples/geo_listing_us070209.html +355 -0
  11. data/test/libcraigscrape_test_helpers.rb +31 -0
  12. data/test/listing_samples/fortmyers_art_index.060909/1046596324.html +93 -0
  13. data/test/listing_samples/fortmyers_art_index.060909/1053085283.html +92 -0
  14. data/test/listing_samples/fortmyers_art_index.060909/1112522674.html +89 -0
  15. data/test/listing_samples/fortmyers_art_index.060909/823516079.html +92 -0
  16. data/test/listing_samples/fortmyers_art_index.060909/825684735.html +89 -0
  17. data/test/listing_samples/fortmyers_art_index.060909/891513957.html +94 -0
  18. data/test/listing_samples/fortmyers_art_index.060909/897549505.html +99 -0
  19. data/test/listing_samples/fortmyers_art_index.060909/960826026.html +89 -0
  20. data/test/listing_samples/fortmyers_art_index.060909/993256300.html +89 -0
  21. data/test/listing_samples/fortmyers_art_index.060909/fortmyers_art_index500.060909.html +237 -0
  22. data/test/listing_samples/fortmyers_art_index.060909/fortmyers_art_index600.060909.html +132 -0
  23. data/test/listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack1000.6.18.09.html +144 -0
  24. data/test/listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack900.6.18.09.html +146 -0
  25. data/test/post_samples/brw_reb_1224008903.html +101 -0
  26. data/test/post_samples/sfbay_art_1223614914.html +94 -0
  27. data/test/test_craigslist_geolisting.rb +425 -0
  28. data/test/test_craigslist_listing.rb +179 -260
  29. data/test/test_craigslist_posting.rb +306 -0
  30. metadata +29 -2
@@ -0,0 +1,76 @@
1
+
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>craigslist: canada classifieds for jobs, apartments, personals, for sale, services, community, and events</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ <link rel="stylesheet" title="craigslist" href="http://www.craigslist.org/styles/craigslist.css" type="text/css" media="all">
8
+ <style type="text/css"><!--
9
+ a { text-decoration: none; }
10
+ #list { line-height: 1.30em;; }
11
+ #list em { font-size: smaller; font-weight: normal; }
12
+ -->
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <blockquote>
17
+ <h3><b><a href="http://www.craigslist.org/">craigslist</a> &gt; canada</b> <sup><a href="http://en.wikipedia.org/wiki/canada">w</a></sup></h3>
18
+
19
+ <blockquote>&nbsp;
20
+ <blockquote>
21
+ <h4>choose the site nearest you (<a href="http://forums.craigslist.org/?forumID=1">or suggest a new one</a>):</h4>
22
+ <blockquote>&nbsp;
23
+ <div id="list"><a href="http://barrie.craigslist.ca/">barrie</a> <br>
24
+ <a href="http://belleville.craigslist.ca/">belleville, ON</a> <br>
25
+ <a href="http://calgary.craigslist.ca/">calgary</a> <br>
26
+ <a href="http://chatham.craigslist.ca/">chatham-kent</a> <br>
27
+ <a href="http://comoxvalley.craigslist.ca/">comox valley</a> <br>
28
+ <a href="http://cornwall.craigslist.ca/">cornwall, ON</a> <br>
29
+ <a href="http://cranbrook.craigslist.ca/">cranbrook, BC</a> <br>
30
+ <a href="http://edmonton.craigslist.ca/">edmonton</a> <br>
31
+ <a href="http://abbotsford.craigslist.ca/">fraser valley</a> <br>
32
+ <a href="http://ftmcmurray.craigslist.ca/">ft mcmurray</a> <br>
33
+ <a href="http://guelph.craigslist.ca/">guelph</a> <br>
34
+ <a href="http://halifax.craigslist.ca/">halifax</a> <br>
35
+ <a href="http://hamilton.craigslist.ca/">hamilton-burlington</a> <br>
36
+ <a href="http://kamloops.craigslist.ca/">kamloops</a> <br>
37
+ <a href="http://kelowna.craigslist.ca/">kelowna</a> <br>
38
+ <a href="http://kingston.craigslist.ca/">kingston, ON</a> <br>
39
+ <a href="http://kitchener.craigslist.ca/">kitchener-waterloo-cambridge</a> <br>
40
+ <a href="http://lethbridge.craigslist.ca/">lethbridge</a> <br>
41
+ <a href="http://londonon.craigslist.ca/">london, ON</a> <br>
42
+ <a href="http://montreal.craigslist.ca/"><b>montreal</b></a> <br>
43
+ <a href="http://nanaimo.craigslist.ca/">nanaimo</a> <br>
44
+ <a href="http://newbrunswick.craigslist.ca/">new brunswick</a> <br>
45
+ <a href="http://newfoundland.craigslist.ca/">newfoundland / labrador</a> <br>
46
+ <a href="http://niagara.craigslist.ca/">niagara region</a> <br>
47
+ <a href="http://ottawa.craigslist.ca/">ottawa-hull-gatineau</a> <br>
48
+ <a href="http://owensound.craigslist.ca/">owen sound</a> <br>
49
+ <a href="http://peterborough.craigslist.ca/">peterborough</a> <br>
50
+ <a href="http://pei.craigslist.ca/">prince edward island</a> <br>
51
+ <a href="http://princegeorge.craigslist.ca/">prince george</a> <br>
52
+ <a href="http://quebec.craigslist.ca/">quebec city</a> <br>
53
+ <a href="http://reddeer.craigslist.ca/">red deer</a> <br>
54
+ <a href="http://regina.craigslist.ca/">regina</a> <br>
55
+ <a href="http://saguenay.craigslist.ca/">saguenay</a> <br>
56
+ <a href="http://sarnia.craigslist.ca/">sarnia</a> <br>
57
+ <a href="http://saskatoon.craigslist.ca/">saskatoon</a> <br>
58
+ <a href="http://soo.craigslist.ca/">sault ste marie, ON</a> <br>
59
+ <a href="http://sherbrooke.craigslist.ca/">sherbrooke</a> <br>
60
+ <a href="http://sudbury.craigslist.ca/">sudbury</a> <br>
61
+ <a href="http://territories.craigslist.ca/">territories</a> <br>
62
+ <a href="http://thunderbay.craigslist.ca/">thunder bay</a> <br>
63
+ <a href="http://toronto.craigslist.ca/"><b>toronto</b></a> <br>
64
+ <a href="http://troisrivieres.craigslist.ca/">trois-rivieres</a> <br>
65
+ <a href="http://vancouver.craigslist.ca/"><b>vancouver, BC</b></a> <br>
66
+ <a href="http://victoria.craigslist.ca/">victoria</a> <br>
67
+ <a href="http://whistler.craigslist.ca/">whistler, BC</a> <br>
68
+ <a href="http://windsor.craigslist.ca/">windsor</a> <br>
69
+ <a href="http://winnipeg.craigslist.ca/">winnipeg</a> <br>
70
+ </div>
71
+ </blockquote>
72
+ </blockquote>
73
+ </blockquote>
74
+ </blockquote>
75
+ </body>
76
+ </html>
@@ -0,0 +1,31 @@
1
+
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>craigslist: canada classifieds for jobs, apartments, personals, for sale, services, community, and events</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ <link rel="stylesheet" title="craigslist" href="http://www.craigslist.org/styles/craigslist.css" type="text/css" media="all">
8
+ <style type="text/css"><!--
9
+ a { text-decoration: none; }
10
+ #list { line-height: 2.00em;; }
11
+ #list em { font-size: smaller; font-weight: normal; }
12
+ -->
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <blockquote>
17
+ <h3><b><a href="http://www.craigslist.org/">craigslist</a> &gt; canada</b> <sup><a href="http://en.wikipedia.org/wiki/canada">w</a></sup></h3>
18
+
19
+ <blockquote>&nbsp;
20
+ <blockquote>
21
+ <h4>choose the site nearest you (<a href="http://forums.craigslist.org/?forumID=1">or suggest a new one</a>):</h4>
22
+ <blockquote>&nbsp;
23
+ <div id="list"><a href="http://regina.craigslist.ca/">regina</a> <br>
24
+ <a href="http://saskatoon.craigslist.ca/">saskatoon</a> <br>
25
+ </div>
26
+ </blockquote>
27
+ </blockquote>
28
+ </blockquote>
29
+ </blockquote>
30
+ </body>
31
+ </html>
@@ -0,0 +1,35 @@
1
+
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>craigslist: china classifieds for jobs, apartments, personals, for sale, services, community, and events</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ <link rel="stylesheet" title="craigslist" href="http://www.craigslist.org/styles/craigslist.css" type="text/css" media="all">
8
+ <style type="text/css"><!--
9
+ a { text-decoration: none; }
10
+ #list { line-height: 1.85em;; }
11
+ #list em { font-size: smaller; font-weight: normal; }
12
+ -->
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <blockquote>
17
+ <h3><b><a href="http://www.craigslist.org/">craigslist</a> &gt; china</b> <sup><a href="http://en.wikipedia.org/wiki/china">w</a></sup></h3>
18
+
19
+ <blockquote>&nbsp;
20
+ <blockquote>
21
+ <h4>choose the site nearest you (<a href="http://forums.craigslist.org/?forumID=1">or suggest a new one</a>):</h4>
22
+ <blockquote>&nbsp;
23
+ <div id="list"><a href="http://beijing.craigslist.com.cn/">beijing</a> <br>
24
+ <a href="http://guangzhou.craigslist.com.cn/">guangzhou</a> <br>
25
+ <a href="http://hangzhou.craigslist.org/">hangzhou</a> <br>
26
+ <a href="http://hongkong.craigslist.org/">hong kong</a> <br>
27
+ <a href="http://shanghai.craigslist.com.cn/">shanghai</a> <br>
28
+ <a href="http://shenzhen.craigslist.org/">shenzhen</a> <br>
29
+ </div>
30
+ </blockquote>
31
+ </blockquote>
32
+ </blockquote>
33
+ </blockquote>
34
+ </body>
35
+ </html>
@@ -0,0 +1,355 @@
1
+
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>craigslist: united states classifieds for jobs, apartments, personals, for sale, services, community, and events</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ <link rel="stylesheet" title="craigslist" href="http://www.craigslist.org/styles/craigslist.css" type="text/css" media="all">
8
+ <style type="text/css"><!--
9
+ a { text-decoration: none; }
10
+ #list { line-height: 1.30em;; }
11
+ #list em { font-size: smaller; font-weight: normal; }
12
+ -->
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <blockquote>
17
+ <h3><b><a href="http://www.craigslist.org/">craigslist</a> &gt; united states</b> <sup><a href="http://en.wikipedia.org/wiki/united_states">w</a></sup></h3>
18
+
19
+ <blockquote>&nbsp;
20
+ <blockquote>
21
+ <h4>choose the site nearest you (<a href="http://forums.craigslist.org/?forumID=1">or suggest a new one</a>):</h4>
22
+ <blockquote>&nbsp;
23
+ <div id="list"><a href="http://sfbay.craigslist.org/"><b>SF bay area</b></a> <br>
24
+ <a href="http://abilene.craigslist.org/">abilene</a> <br>
25
+ <a href="http://akroncanton.craigslist.org/">akron / canton</a> <br>
26
+ <a href="http://anchorage.craigslist.org/"><b>alaska</b></a> <br>
27
+ <a href="http://albany.craigslist.org/"><b>albany</b></a> <br>
28
+ <a href="http://albuquerque.craigslist.org/"><b>albuquerque</b></a> <br>
29
+ <a href="http://altoona.craigslist.org/">altoona-johnstown</a> <br>
30
+ <a href="http://amarillo.craigslist.org/">amarillo</a> <br>
31
+ <a href="http://ames.craigslist.org/">ames, IA</a> <br>
32
+ <a href="http://annarbor.craigslist.org/">ann arbor</a> <br>
33
+ <a href="http://annapolis.craigslist.org/">annapolis</a> <br>
34
+ <a href="http://appleton.craigslist.org/">appleton-oshkosh-FDL</a> <br>
35
+ <a href="http://asheville.craigslist.org/">asheville</a> <br>
36
+ <a href="http://athensga.craigslist.org/">athens, GA</a> <br>
37
+ <a href="http://athensohio.craigslist.org/">athens, OH</a> <br>
38
+ <a href="http://atlanta.craigslist.org/"><b>atlanta</b></a> <br>
39
+ <a href="http://auburn.craigslist.org/">auburn</a> <br>
40
+ <a href="http://augusta.craigslist.org/">augusta</a> <br>
41
+ <a href="http://austin.craigslist.org/"><b>austin</b></a> <br>
42
+ <a href="http://bakersfield.craigslist.org/">bakersfield</a> <br>
43
+ <a href="http://baltimore.craigslist.org/"><b>baltimore</b></a> <br>
44
+ <a href="http://batonrouge.craigslist.org/">baton rouge</a> <br>
45
+ <a href="http://beaumont.craigslist.org/">beaumont / port arthur</a> <br>
46
+ <a href="http://bellingham.craigslist.org/">bellingham</a> <br>
47
+ <a href="http://bend.craigslist.org/">bend</a> <br>
48
+ <a href="http://binghamton.craigslist.org/">binghamton</a> <br>
49
+ <a href="http://bham.craigslist.org/">birmingham, AL</a> <br>
50
+ <a href="http://blacksburg.craigslist.org/">blacksburg</a> <br>
51
+ <a href="http://bloomington.craigslist.org/">bloomington</a> <br>
52
+ <a href="http://bn.craigslist.org/">bloomington-normal</a> <br>
53
+ <a href="http://boise.craigslist.org/"><b>boise</b></a> <br>
54
+ <a href="http://boone.craigslist.org/">boone</a> <br>
55
+ <a href="http://boston.craigslist.org/"><b>boston</b></a> - includes merrimack valley, metro west, north shore, south shore<br>
56
+ <a href="http://boulder.craigslist.org/">boulder</a> <br>
57
+ <a href="http://bgky.craigslist.org/">bowling green</a> <br>
58
+ <a href="http://brownsville.craigslist.org/">brownsville</a> <br>
59
+ <a href="http://brunswick.craigslist.org/">brunswick, GA</a> <br>
60
+ <a href="http://buffalo.craigslist.org/"><b>buffalo</b></a> <br>
61
+ <a href="http://capecod.craigslist.org/">cape cod / islands</a> <br>
62
+ <a href="http://carbondale.craigslist.org/">carbondale</a> <br>
63
+ <a href="http://catskills.craigslist.org/">catskills</a> <br>
64
+ <a href="http://cedarrapids.craigslist.org/">cedar rapids</a> <br>
65
+ <a href="http://cnj.craigslist.org/">central NJ</a> <br>
66
+ <a href="http://centralmich.craigslist.org/">central michigan</a> <br>
67
+ <a href="http://chambana.craigslist.org/">champaign urbana</a> <br>
68
+ <a href="http://charleston.craigslist.org/">charleston, SC</a> <br>
69
+ <a href="http://charlestonwv.craigslist.org/">charleston, WV</a> <br>
70
+ <a href="http://charlotte.craigslist.org/"><b>charlotte</b></a> <br>
71
+ <a href="http://charlottesville.craigslist.org/">charlottesville</a> <br>
72
+ <a href="http://chattanooga.craigslist.org/">chattanooga</a> <br>
73
+ <a href="http://chautauqua.craigslist.org/">chautauqua</a> <br>
74
+ <a href="http://chicago.craigslist.org/"><b>chicago</b></a> <br>
75
+ <a href="http://chico.craigslist.org/">chico</a> <br>
76
+ <a href="http://cincinnati.craigslist.org/"><b>cincinnati, OH</b></a> <br>
77
+ <a href="http://clarksville.craigslist.org/">clarksville, TN</a> <br>
78
+ <a href="http://cleveland.craigslist.org/"><b>cleveland</b></a> <br>
79
+ <a href="http://collegestation.craigslist.org/">college station</a> <br>
80
+ <a href="http://cosprings.craigslist.org/">colorado springs</a> <br>
81
+ <a href="http://columbiamo.craigslist.org/">columbia / jeff city</a> <br>
82
+ <a href="http://columbia.craigslist.org/">columbia, SC</a> <br>
83
+ <a href="http://columbus.craigslist.org/"><b>columbus</b></a> <br>
84
+ <a href="http://columbusga.craigslist.org/">columbus, GA</a> <br>
85
+ <a href="http://corpuschristi.craigslist.org/">corpus christi</a> <br>
86
+ <a href="http://corvallis.craigslist.org/">corvallis/albany</a> <br>
87
+ <a href="http://dallas.craigslist.org/"><b>dallas / fort worth</b></a> <br>
88
+ <a href="http://danville.craigslist.org/">danville</a> <br>
89
+ <a href="http://dayton.craigslist.org/">dayton / springfield</a> <br>
90
+ <a href="http://daytona.craigslist.org/">daytona beach</a> <br>
91
+ <a href="http://decatur.craigslist.org/">decatur, IL</a> <br>
92
+ <a href="http://delaware.craigslist.org/">delaware</a> <br>
93
+ <a href="http://denver.craigslist.org/"><b>denver</b></a> <br>
94
+ <a href="http://desmoines.craigslist.org/">des moines</a> <br>
95
+ <a href="http://detroit.craigslist.org/"><b>detroit metro</b></a> <br>
96
+ <a href="http://dothan.craigslist.org/">dothan, AL</a> <br>
97
+ <a href="http://dubuque.craigslist.org/">dubuque</a> <br>
98
+ <a href="http://duluth.craigslist.org/">duluth / superior</a> <br>
99
+ <a href="http://eastidaho.craigslist.org/">east idaho</a> <br>
100
+ <a href="http://eastoregon.craigslist.org/">east oregon</a> <br>
101
+ <a href="http://newlondon.craigslist.org/">eastern CT</a> <br>
102
+ <a href="http://eastnc.craigslist.org/">eastern NC</a> <br>
103
+ <a href="http://easternshore.craigslist.org/">eastern shore</a> <br>
104
+ <a href="http://eauclaire.craigslist.org/">eau claire</a> <br>
105
+ <a href="http://elpaso.craigslist.org/">el paso</a> <br>
106
+ <a href="http://elmira.craigslist.org/">elmira-corning</a> <br>
107
+ <a href="http://erie.craigslist.org/">erie, PA</a> <br>
108
+ <a href="http://eugene.craigslist.org/">eugene</a> <br>
109
+ <a href="http://evansville.craigslist.org/">evansville</a> <br>
110
+ <a href="http://fargo.craigslist.org/">fargo / moorhead</a> <br>
111
+ <a href="http://farmington.craigslist.org/">farmington, NM</a> <br>
112
+ <a href="http://fayetteville.craigslist.org/">fayetteville</a> <br>
113
+ <a href="http://fayar.craigslist.org/">fayetteville, AR</a> <br>
114
+ <a href="http://flagstaff.craigslist.org/">flagstaff / sedona</a> <br>
115
+ <a href="http://flint.craigslist.org/">flint</a> <br>
116
+ <a href="http://shoals.craigslist.org/">florence / muscle shoals</a> <br>
117
+ <a href="http://florencesc.craigslist.org/">florence, SC</a> <br>
118
+ <a href="http://keys.craigslist.org/">florida keys</a> <br>
119
+ <a href="http://fortcollins.craigslist.org/">fort collins / north CO</a> <br>
120
+ <a href="http://fortsmith.craigslist.org/">fort smith, AR</a> <br>
121
+ <a href="http://fortwayne.craigslist.org/">fort wayne</a> <br>
122
+ <a href="http://fredericksburg.craigslist.org/">fredericksburg</a> <br>
123
+ <a href="http://fresno.craigslist.org/"><b>fresno</b></a> <br>
124
+ <a href="http://fortmyers.craigslist.org/">ft myers / SW florida</a> <br>
125
+ <a href="http://gadsden.craigslist.org/">gadsden-anniston</a> <br>
126
+ <a href="http://gainesville.craigslist.org/">gainesville</a> <br>
127
+ <a href="http://galveston.craigslist.org/">galveston</a> <br>
128
+ <a href="http://goldcountry.craigslist.org/">gold country</a> <br>
129
+ <a href="http://grandisland.craigslist.org/">grand island</a> <br>
130
+ <a href="http://grandrapids.craigslist.org/">grand rapids</a> <br>
131
+ <a href="http://greenbay.craigslist.org/">green bay</a> <br>
132
+ <a href="http://greensboro.craigslist.org/">greensboro</a> <br>
133
+ <a href="http://greenville.craigslist.org/">greenville / upstate</a> <br>
134
+ <a href="http://gulfport.craigslist.org/">gulfport / biloxi</a> <br>
135
+ <a href="http://norfolk.craigslist.org/"><b>hampton roads</b></a> <br>
136
+ <a href="http://harrisburg.craigslist.org/">harrisburg</a> <br>
137
+ <a href="http://harrisonburg.craigslist.org/">harrisonburg</a> <br>
138
+ <a href="http://hartford.craigslist.org/"><b>hartford</b></a> <br>
139
+ <a href="http://hattiesburg.craigslist.org/">hattiesburg</a> <br>
140
+ <a href="http://honolulu.craigslist.org/"><b>hawaii</b></a> <br>
141
+ <a href="http://hickory.craigslist.org/">hickory / lenoir</a> <br>
142
+ <a href="http://hiltonhead.craigslist.org/">hilton head</a> <br>
143
+ <a href="http://houston.craigslist.org/"><b>houston</b></a> <br>
144
+ <a href="http://hudsonvalley.craigslist.org/">hudson valley</a> <br>
145
+ <a href="http://humboldt.craigslist.org/">humboldt county</a> <br>
146
+ <a href="http://huntington.craigslist.org/">huntington-ashland</a> <br>
147
+ <a href="http://huntsville.craigslist.org/">huntsville</a> <br>
148
+ <a href="http://imperial.craigslist.org/">imperial county</a> <br>
149
+ <a href="http://indianapolis.craigslist.org/"><b>indianapolis</b></a> <br>
150
+ <a href="http://inlandempire.craigslist.org/">inland empire</a> - riverside and san bernardino counties<br>
151
+ <a href="http://iowacity.craigslist.org/">iowa city</a> <br>
152
+ <a href="http://ithaca.craigslist.org/">ithaca</a> <br>
153
+ <a href="http://jxn.craigslist.org/">jackson, MI</a> <br>
154
+ <a href="http://jackson.craigslist.org/">jackson, MS</a> <br>
155
+ <a href="http://jacksontn.craigslist.org/">jackson, TN</a> <br>
156
+ <a href="http://jacksonville.craigslist.org/">jacksonville</a> <br>
157
+ <a href="http://janesville.craigslist.org/">janesville</a> <br>
158
+ <a href="http://jerseyshore.craigslist.org/">jersey shore</a> <br>
159
+ <a href="http://jonesboro.craigslist.org/">jonesboro</a> <br>
160
+ <a href="http://joplin.craigslist.org/">joplin</a> <br>
161
+ <a href="http://kalamazoo.craigslist.org/">kalamazoo</a> <br>
162
+ <a href="http://kansascity.craigslist.org/"><b>kansas city, MO</b></a> <br>
163
+ <a href="http://kpr.craigslist.org/">kennewick-pasco-richland</a> <br>
164
+ <a href="http://racine.craigslist.org/">kenosha-racine</a> <br>
165
+ <a href="http://killeen.craigslist.org/">killeen / temple / ft hood</a> <br>
166
+ <a href="http://knoxville.craigslist.org/">knoxville</a> <br>
167
+ <a href="http://lacrosse.craigslist.org/">la crosse</a> <br>
168
+ <a href="http://lafayette.craigslist.org/">lafayette</a> <br>
169
+ <a href="http://tippecanoe.craigslist.org/">lafayette / west lafayette</a> <br>
170
+ <a href="http://lakecharles.craigslist.org/">lake charles</a> <br>
171
+ <a href="http://lakeland.craigslist.org/">lakeland</a> <br>
172
+ <a href="http://lancaster.craigslist.org/">lancaster, PA</a> <br>
173
+ <a href="http://lansing.craigslist.org/">lansing</a> <br>
174
+ <a href="http://laredo.craigslist.org/">laredo</a> <br>
175
+ <a href="http://lascruces.craigslist.org/">las cruces</a> <br>
176
+ <a href="http://lasvegas.craigslist.org/"><b>las vegas</b></a> <br>
177
+ <a href="http://lawrence.craigslist.org/">lawrence</a> <br>
178
+ <a href="http://lawton.craigslist.org/">lawton</a> <br>
179
+ <a href="http://allentown.craigslist.org/">lehigh valley</a> <br>
180
+ <a href="http://lexington.craigslist.org/">lexington, KY</a> <br>
181
+ <a href="http://limaohio.craigslist.org/">lima / findlay</a> <br>
182
+ <a href="http://lincoln.craigslist.org/">lincoln</a> <br>
183
+ <a href="http://littlerock.craigslist.org/">little rock</a> <br>
184
+ <a href="http://logan.craigslist.org/">logan</a> <br>
185
+ <a href="http://longisland.craigslist.org/">long island</a> <br>
186
+ <a href="http://losangeles.craigslist.org/"><b>los angeles</b></a> <br>
187
+ <a href="http://louisville.craigslist.org/"><b>louisville</b></a> <br>
188
+ <a href="http://lubbock.craigslist.org/">lubbock</a> <br>
189
+ <a href="http://lynchburg.craigslist.org/">lynchburg</a> <br>
190
+ <a href="http://macon.craigslist.org/">macon</a> <br>
191
+ <a href="http://madison.craigslist.org/">madison</a> <br>
192
+ <a href="http://maine.craigslist.org/">maine</a> <br>
193
+ <a href="http://ksu.craigslist.org/">manhattan, KS</a> <br>
194
+ <a href="http://mankato.craigslist.org/">mankato</a> <br>
195
+ <a href="http://mansfield.craigslist.org/">mansfield</a> <br>
196
+ <a href="http://martinsburg.craigslist.org/">martinsburg</a> <br>
197
+ <a href="http://mcallen.craigslist.org/">mcallen / edinburg</a> <br>
198
+ <a href="http://medford.craigslist.org/">medford-ashland-klamath</a> <br>
199
+ <a href="http://memphis.craigslist.org/"><b>memphis, TN</b></a> <br>
200
+ <a href="http://mendocino.craigslist.org/">mendocino county</a> <br>
201
+ <a href="http://merced.craigslist.org/">merced</a> <br>
202
+ <a href="http://milwaukee.craigslist.org/"><b>milwaukee</b></a> <br>
203
+ <a href="http://minneapolis.craigslist.org/"><b>minneapolis / st paul</b></a> <br>
204
+ <a href="http://mobile.craigslist.org/">mobile</a> <br>
205
+ <a href="http://modesto.craigslist.org/">modesto</a> <br>
206
+ <a href="http://mohave.craigslist.org/">mohave county</a> <br>
207
+ <a href="http://monroe.craigslist.org/">monroe, LA</a> <br>
208
+ <a href="http://montana.craigslist.org/">montana</a> <br>
209
+ <a href="http://monterey.craigslist.org/">monterey bay</a> <br>
210
+ <a href="http://montgomery.craigslist.org/">montgomery</a> <br>
211
+ <a href="http://morgantown.craigslist.org/">morgantown</a> <br>
212
+ <a href="http://muncie.craigslist.org/">muncie / anderson</a> <br>
213
+ <a href="http://muskegon.craigslist.org/">muskegon</a> <br>
214
+ <a href="http://myrtlebeach.craigslist.org/">myrtle beach</a> <br>
215
+ <a href="http://nashville.craigslist.org/"><b>nashville</b></a> <br>
216
+ <a href="http://nh.craigslist.org/">new hampshire</a> <br>
217
+ <a href="http://newhaven.craigslist.org/">new haven</a> <br>
218
+ <a href="http://neworleans.craigslist.org/"><b>new orleans</b></a> <br>
219
+ <a href="http://newyork.craigslist.org/"><b>new york city</b></a> <br>
220
+ <a href="http://nd.craigslist.org/">north dakota</a> <br>
221
+ <a href="http://newjersey.craigslist.org/">north jersey</a> <br>
222
+ <a href="http://northmiss.craigslist.org/">north mississippi</a> <br>
223
+ <a href="http://nmi.craigslist.org/">northern michigan</a> <br>
224
+ <a href="http://nwct.craigslist.org/">northwest CT</a> <br>
225
+ <a href="http://ocala.craigslist.org/">ocala</a> <br>
226
+ <a href="http://odessa.craigslist.org/">odessa / midland</a> <br>
227
+ <a href="http://ogden.craigslist.org/">ogden-clearfield</a> <br>
228
+ <a href="http://oklahomacity.craigslist.org/"><b>oklahoma city</b></a> <br>
229
+ <a href="http://olympic.craigslist.org/">olympic peninsula</a> <br>
230
+ <a href="http://omaha.craigslist.org/"><b>omaha / council bluffs</b></a> <br>
231
+ <a href="http://orangecounty.craigslist.org/"><b>orange county</b></a> <br>
232
+ <a href="http://oregoncoast.craigslist.org/">oregon coast</a> <br>
233
+ <a href="http://orlando.craigslist.org/"><b>orlando</b></a> <br>
234
+ <a href="http://outerbanks.craigslist.org/">outer banks</a> <br>
235
+ <a href="http://palmsprings.craigslist.org/">palm springs, CA</a> <br>
236
+ <a href="http://panamacity.craigslist.org/">panama city, FL</a> <br>
237
+ <a href="http://parkersburg.craigslist.org/">parkersburg-marietta</a> <br>
238
+ <a href="http://pensacola.craigslist.org/">pensacola / panhandle</a> <br>
239
+ <a href="http://peoria.craigslist.org/">peoria</a> <br>
240
+ <a href="http://philadelphia.craigslist.org/"><b>philadelphia</b></a> <br>
241
+ <a href="http://phoenix.craigslist.org/"><b>phoenix</b></a> <br>
242
+ <a href="http://pittsburgh.craigslist.org/"><b>pittsburgh</b></a> <br>
243
+ <a href="http://plattsburgh.craigslist.org/">plattsburgh-adirondacks</a> <br>
244
+ <a href="http://poconos.craigslist.org/">poconos</a> <br>
245
+ <a href="http://porthuron.craigslist.org/">port huron</a> <br>
246
+ <a href="http://portland.craigslist.org/"><b>portland, OR</b></a> <br>
247
+ <a href="http://prescott.craigslist.org/">prescott</a> <br>
248
+ <a href="http://provo.craigslist.org/">provo / orem</a> <br>
249
+ <a href="http://pueblo.craigslist.org/">pueblo</a> <br>
250
+ <a href="http://pullman.craigslist.org/">pullman / moscow</a> <br>
251
+ <a href="http://quadcities.craigslist.org/">quad cities, IA/IL</a> <br>
252
+ <a href="http://raleigh.craigslist.org/"><b>raleigh / durham / CH</b></a> <br>
253
+ <a href="http://reading.craigslist.org/">reading</a> <br>
254
+ <a href="http://redding.craigslist.org/">redding</a> <br>
255
+ <a href="http://reno.craigslist.org/">reno / tahoe</a> <br>
256
+ <a href="http://providence.craigslist.org/"><b>rhode island</b></a> <br>
257
+ <a href="http://richmond.craigslist.org/"><b>richmond</b></a> <br>
258
+ <a href="http://roanoke.craigslist.org/">roanoke</a> <br>
259
+ <a href="http://rmn.craigslist.org/">rochester, MN</a> <br>
260
+ <a href="http://rochester.craigslist.org/">rochester, NY</a> <br>
261
+ <a href="http://rockford.craigslist.org/">rockford</a> <br>
262
+ <a href="http://rockies.craigslist.org/">rocky mountains</a> <br>
263
+ <a href="http://roseburg.craigslist.org/">roseburg</a> <br>
264
+ <a href="http://roswell.craigslist.org/">roswell / carlsbad</a> <br>
265
+ <a href="http://sacramento.craigslist.org/"><b>sacramento</b></a> <br>
266
+ <a href="http://saginaw.craigslist.org/">saginaw-midland-baycity</a> <br>
267
+ <a href="http://salem.craigslist.org/">salem, OR</a> <br>
268
+ <a href="http://saltlakecity.craigslist.org/"><b>salt lake city</b></a> <br>
269
+ <a href="http://sanantonio.craigslist.org/"><b>san antonio</b></a> <br>
270
+ <a href="http://sandiego.craigslist.org/"><b>san diego</b></a> <br>
271
+ <a href="http://slo.craigslist.org/">san luis obispo</a> <br>
272
+ <a href="http://sanmarcos.craigslist.org/">san marcos</a> <br>
273
+ <a href="http://sandusky.craigslist.org/">sandusky</a> <br>
274
+ <a href="http://santabarbara.craigslist.org/">santa barbara</a> <br>
275
+ <a href="http://santafe.craigslist.org/">santa fe / taos</a> <br>
276
+ <a href="http://sarasota.craigslist.org/">sarasota-bradenton</a> <br>
277
+ <a href="http://savannah.craigslist.org/">savannah</a> <br>
278
+ <a href="http://scranton.craigslist.org/">scranton / wilkes-barre</a> <br>
279
+ <a href="http://seattle.craigslist.org/"><b>seattle-tacoma</b></a> <br>
280
+ <a href="http://sheboygan.craigslist.org/">sheboygan, WI</a> <br>
281
+ <a href="http://shreveport.craigslist.org/">shreveport</a> <br>
282
+ <a href="http://sierravista.craigslist.org/">sierra vista</a> <br>
283
+ <a href="http://siouxcity.craigslist.org/">sioux city, IA</a> <br>
284
+ <a href="http://skagit.craigslist.org/">skagit / island / SJI</a> <br>
285
+ <a href="http://southbend.craigslist.org/">south bend / michiana</a> <br>
286
+ <a href="http://southcoast.craigslist.org/">south coast</a> - southern bristol and plymouth counties<br>
287
+ <a href="http://sd.craigslist.org/">south dakota</a> <br>
288
+ <a href="http://miami.craigslist.org/"><b>south florida</b></a> - includes separate sections for miami/dade, broward, and palm beach counties<br>
289
+ <a href="http://southjersey.craigslist.org/">south jersey</a> <br>
290
+ <a href="http://semo.craigslist.org/">southeast missouri</a> <br>
291
+ <a href="http://smd.craigslist.org/">southern maryland</a> <br>
292
+ <a href="http://swmi.craigslist.org/">southwest michigan</a> <br>
293
+ <a href="http://spacecoast.craigslist.org/">space coast</a> <br>
294
+ <a href="http://spokane.craigslist.org/">spokane / coeur d'alene</a> <br>
295
+ <a href="http://springfieldil.craigslist.org/">springfield, IL</a> <br>
296
+ <a href="http://springfield.craigslist.org/">springfield, MO</a> <br>
297
+ <a href="http://staugustine.craigslist.org/">st augustine</a> <br>
298
+ <a href="http://stcloud.craigslist.org/">st cloud</a> <br>
299
+ <a href="http://stgeorge.craigslist.org/">st george</a> <br>
300
+ <a href="http://stlouis.craigslist.org/"><b>st louis, MO</b></a> <br>
301
+ <a href="http://pennstate.craigslist.org/">state college</a> <br>
302
+ <a href="http://stillwater.craigslist.org/">stillwater</a> <br>
303
+ <a href="http://stockton.craigslist.org/">stockton</a> <br>
304
+ <a href="http://syracuse.craigslist.org/">syracuse</a> <br>
305
+ <a href="http://tallahassee.craigslist.org/">tallahassee</a> <br>
306
+ <a href="http://tampa.craigslist.org/"><b>tampa bay area</b></a> <br>
307
+ <a href="http://terrahaute.craigslist.org/">terre haute</a> <br>
308
+ <a href="http://texarkana.craigslist.org/">texarkana</a> <br>
309
+ <a href="http://toledo.craigslist.org/">toledo</a> <br>
310
+ <a href="http://topeka.craigslist.org/">topeka</a> <br>
311
+ <a href="http://treasure.craigslist.org/">treasure coast</a> <br>
312
+ <a href="http://tricities.craigslist.org/">tri-cities, TN</a> <br>
313
+ <a href="http://tucson.craigslist.org/"><b>tucson</b></a> <br>
314
+ <a href="http://tulsa.craigslist.org/">tulsa</a> <br>
315
+ <a href="http://tuscaloosa.craigslist.org/">tuscaloosa</a> <br>
316
+ <a href="http://twinfalls.craigslist.org/">twin falls</a> <br>
317
+ <a href="http://easttexas.craigslist.org/">tyler / east TX</a> <br>
318
+ <a href="http://up.craigslist.org/">upper peninsula</a> <br>
319
+ <a href="http://utica.craigslist.org/">utica</a> <br>
320
+ <a href="http://valdosta.craigslist.org/">valdosta</a> <br>
321
+ <a href="http://ventura.craigslist.org/">ventura county</a> <br>
322
+ <a href="http://burlington.craigslist.org/">vermont</a> <br>
323
+ <a href="http://victoriatx.craigslist.org/">victoria, TX</a> <br>
324
+ <a href="http://visalia.craigslist.org/">visalia-tulare</a> <br>
325
+ <a href="http://waco.craigslist.org/">waco</a> <br>
326
+ <a href="http://washingtondc.craigslist.org/"><b>washington, DC</b></a> <br>
327
+ <a href="http://waterloo.craigslist.org/">waterloo / cedar falls</a> <br>
328
+ <a href="http://watertown.craigslist.org/">watertown</a> <br>
329
+ <a href="http://wausau.craigslist.org/">wausau</a> <br>
330
+ <a href="http://wenatchee.craigslist.org/">wenatchee</a> <br>
331
+ <a href="http://wv.craigslist.org/">west virginia (old)</a> <br>
332
+ <a href="http://westky.craigslist.org/">western KY</a> <br>
333
+ <a href="http://westmd.craigslist.org/">western maryland</a> <br>
334
+ <a href="http://westernmass.craigslist.org/">western massachusetts</a> <br>
335
+ <a href="http://westslope.craigslist.org/">western slope</a> <br>
336
+ <a href="http://wheeling.craigslist.org/">wheeling, WV</a> <br>
337
+ <a href="http://wichita.craigslist.org/">wichita</a> <br>
338
+ <a href="http://wichitafalls.craigslist.org/">wichita falls</a> <br>
339
+ <a href="http://williamsport.craigslist.org/">williamsport</a> <br>
340
+ <a href="http://wilmington.craigslist.org/">wilmington, NC</a> <br>
341
+ <a href="http://winstonsalem.craigslist.org/">winston-salem</a> <br>
342
+ <a href="http://worcester.craigslist.org/">worcester / central MA</a> <br>
343
+ <a href="http://wyoming.craigslist.org/">wyoming</a> <br>
344
+ <a href="http://yakima.craigslist.org/">yakima</a> <br>
345
+ <a href="http://york.craigslist.org/">york, PA</a> <br>
346
+ <a href="http://youngstown.craigslist.org/">youngstown</a> <br>
347
+ <a href="http://yubasutter.craigslist.org/">yuba-sutter</a> <br>
348
+ <a href="http://yuma.craigslist.org/">yuma</a> <br>
349
+ </div>
350
+ </blockquote>
351
+ </blockquote>
352
+ </blockquote>
353
+ </blockquote>
354
+ </body>
355
+ </html>
@@ -0,0 +1,31 @@
1
+ module LibcraigscrapeTestHelpers
2
+ def relative_uri_for(filename)
3
+ 'file://%s/%s' % [File.dirname(File.expand_path(__FILE__)), filename]
4
+ end
5
+
6
+ def pp_assertions(obj, obj_name)
7
+ probable_accessors = (obj.methods-obj.class.superclass.methods)
8
+
9
+ puts
10
+ probable_accessors.sort.each do |m|
11
+ val = obj.send(m.to_sym)
12
+
13
+ # There's a good number of transformations worth doing here, I'll just start like this for now:
14
+ if val.kind_of? Time
15
+ # I've decided this is the the easiest way to understand and test a time
16
+ val = val.to_a
17
+ m = "#{m}.to_a"
18
+ end
19
+
20
+ if val.kind_of? Hash and val.length > 5
21
+ puts "assert_equal %s, %s.%s.length" % [val.length.inspect,obj_name,m]
22
+
23
+ val.keys.sort{|a,b| a <=> b }.each do |k|
24
+ puts "assert_equal %s, %s.%s[%s]" % [val[k].inspect,obj_name,m,k.inspect]
25
+ end
26
+ else
27
+ puts "assert_equal %s, %s.%s" % [val.inspect,obj_name,m]
28
+ end
29
+ end
30
+ end
31
+ end