3 |
import java.io.FileWriter; |
import java.io.FileWriter; |
4 |
import java.io.StringWriter; |
import java.io.StringWriter; |
5 |
import java.io.Writer; |
import java.io.Writer; |
6 |
|
import java.net.HttpURLConnection; |
7 |
|
import java.net.URL; |
8 |
|
import java.net.URLConnection; |
9 |
|
import java.net.URLEncoder; |
10 |
import java.util.Date; |
import java.util.Date; |
11 |
|
|
12 |
import javax.xml.parsers.DocumentBuilderFactory; |
import javax.xml.parsers.DocumentBuilderFactory; |
34 |
*/ |
*/ |
35 |
public class Sitemap { |
public class Sitemap { |
36 |
|
|
37 |
Logger log = Logger.getLogger(Sitemap.class); |
static String[] SEARCHENGINES = new String[] { |
38 |
|
"http://www.sitemapwriter.com/notify.php?crawler=all&url=", |
39 |
|
"http://submissions.ask.com/ping?sitemap=", |
40 |
|
"http://www.google.com/webmasters/tools/ping?sitemap=", |
41 |
|
"http://api.moreover.com/ping?u=", |
42 |
|
"http://www.bing.com/webmaster/ping.aspx?siteMap=", |
43 |
|
"http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=" }; |
44 |
|
|
45 |
|
final static Logger log = Logger.getLogger(Sitemap.class); |
46 |
|
|
47 |
private Document document; |
private Document document; |
48 |
|
|
163 |
// with indenting to make it human-readable |
// with indenting to make it human-readable |
164 |
final TransformerFactory tf = TransformerFactory.newInstance(); |
final TransformerFactory tf = TransformerFactory.newInstance(); |
165 |
|
|
166 |
// TODO Ging mit xerces, geht nicht mehr mit xalan ?! |
// TODO Ging mit xerces, geht nicht mehr mit xalan ?! |
167 |
// tf.setAttribute("indent-number", new Integer(2)); |
// tf.setAttribute("indent-number", new Integer(2)); |
168 |
|
|
169 |
final Transformer xformer = tf.newTransformer(); |
final Transformer xformer = tf.newTransformer(); |
187 |
public int getSize() { |
public int getSize() { |
188 |
return size; |
return size; |
189 |
} |
} |
190 |
|
|
191 |
|
public static void submitToSearchEngines(String urlToSitemap) { |
192 |
|
try { |
193 |
|
|
194 |
|
urlToSitemap = URLEncoder.encode(urlToSitemap, "UTF-8"); |
195 |
|
for (String se : SEARCHENGINES) { |
196 |
|
log.info("Submitting " + urlToSitemap + " to " + se); |
197 |
|
try { |
198 |
|
URL url = new URL(se + urlToSitemap); |
199 |
|
|
200 |
|
URLConnection openConnection = url.openConnection(); |
201 |
|
if (openConnection instanceof HttpURLConnection) { |
202 |
|
HttpURLConnection httpconnection = ((HttpURLConnection) openConnection); |
203 |
|
if (httpconnection.getResponseCode() != 200) { |
204 |
|
log.error(se + " returned ResponseCode " |
205 |
|
+ httpconnection.getResponseCode() |
206 |
|
+ " for " + urlToSitemap); |
207 |
|
} |
208 |
|
} |
209 |
|
|
210 |
|
} catch (Exception e) { |
211 |
|
log.error("failed to submit " + urlToSitemap + " to " + se, |
212 |
|
e); |
213 |
|
} |
214 |
|
} |
215 |
|
} catch (Exception e) { |
216 |
|
log.error("Error URL encoding " + urlToSitemap, e); |
217 |
|
} |
218 |
|
} |
219 |
} |
} |