umlaut - google search results
in
Programming Questions
•
7 months ago
Hi there,
I've been working on this question today: http://processing.org/discourse/beta/num_1263989874.html
trying to figure out how I can convert my search results to display special characters like ä and ö correctly.
e.g. the result is:
"<div id="resultStats">Ungef?hr 264.000.000 Ergebnisse</div>"
in english it's "about 264.000.000 results"
This is the current code kaypel wrote for the most part and I started to modify and play around with it.
I hope someone can help me with it, as I wasn't able to find results that helped me to convert the string array.
I've been working on this question today: http://processing.org/discourse/beta/num_1263989874.html
trying to figure out how I can convert my search results to display special characters like ä and ö correctly.
e.g. the result is:
"<div id="resultStats">Ungef?hr 264.000.000 Ergebnisse</div>"
in english it's "about 264.000.000 results"
This is the current code kaypel wrote for the most part and I started to modify and play around with it.
I hope someone can help me with it, as I wasn't able to find results that helped me to convert the string array.
- boolean eingabemodus;
import java.net.*;
import java.io.*;
int start_x, start_y;
String[] gesucht = new String[0];
float[] anzahlergebnisse = new float[0];
PFont schrift = createFont("Monospaced", 12);
String eingabetext = "";
String adresse;
String[] quelltext;
String quelltext_1zeilig;
String ergebniswort;
ArrayList kreisliste;
void setup()
{
size(700, 500, JAVA2D);
frameRate(30);
rectMode(CENTER);
textFont(schrift);
colorMode(HSB, width, 100, 100, 100);
smooth();
kreisliste = new ArrayList();
noStroke();
}
void draw()
{
background(0);
if (eingabemodus)
{
fill(0, 0, 20);
rect(start_x, start_y + 15, textWidth(eingabetext) + 20, 30);
fill(0, 0, 120);
text(eingabetext, start_x - textWidth(eingabetext) / 2, start_y + 20);
}
for (int lauf = 0; lauf < kreisliste.size(); lauf++)
{
kreis k = (kreis) kreisliste.get(lauf);
k.zeichnen();
k.ausrichten();
}
}
void mousePressed()
{
if (mouseButton == LEFT) {
if (!eingabemodus)
{
eingabemodus = !eingabemodus;
start_x = mouseX;
start_y = mouseY;
}
}
if (mouseButton == RIGHT) {
if (kreisliste.size() > 0)
{
kreisliste.remove(kreisliste.size()-1);
gesucht = shorten(gesucht);
anzahlergebnisse = shorten(anzahlergebnisse);
}
}
}
void keyPressed()
{
if (eingabemodus)
{
if (key == BACKSPACE)
{
if (eingabetext.length() > 0)
{
eingabetext = eingabetext.substring(0, eingabetext.length()-1);
}
}
if (key == ENTER || key == RETURN)
{
eingabemodus = !eingabemodus;
gesucht = append(gesucht, eingabetext);
for (int n = 0; n < 1; n++)
{
if (empfangeQuelltext(eingabetext) != null)
{
quelltext_1zeilig = join(quelltext, "");
anzahlergebnisse = append(anzahlergebnisse, findeAnzahl(quelltext_1zeilig));
kreisliste.add(new kreis(start_x, start_y, gesucht[kreisliste.size()], anzahlergebnisse[kreisliste.size()], kreisliste.size()));
}
else n--;
}
eingabetext = "";
}
if (key >= 'A' && key <= 'Z' || key >= 'a' && key <= 'z' || key >= '-' && key <='9')
{
eingabetext += key;
}
if (key == ' ') eingabetext += "+";
}
}
String[] empfangeQuelltext(String suchausdruck)
{
adresse = "https://www.google.de/search?q=" + suchausdruck + "?hl=en";
//adresse = "http://www.bing.com/search?q=" + suchausdruck + "&go=&form=QBLH&filt=all";
try
{
URL url = new URL(adresse);
URLConnection verbindung = url.openConnection();
verbindung.setRequestProperty("User-Agent", "Vergleichssuche" );
quelltext = loadStrings(verbindung.getInputStream());
println(quelltext);
}
catch (IOException e)
{
println("catched");
e.printStackTrace();
}
return quelltext;
}
int findeAnzahl(String zeichenkette)
{
int ergebniszahl;
String davor = "<div id=\"subform_ctrl\"><div id=\"resultStats\">Ungef"; // Google - does not work, why?
String danach = " Ergebnisse</div>";
//String davor = "<span class=\"sb_count\" id=\"count\">"; // Bing
//String danach = " Ergebnisse</span>";
int start = zeichenkette.indexOf(davor);
println("start: " + start);
start += davor.length();
println("start: "+ start);
int ende = zeichenkette.indexOf(danach, start);
String ergebnis = zeichenkette.substring(start, ende);
String[] ergebnisteile = splitTokens(ergebnis, ".");
for (int i = 0; i < ergebnisteile.length; i++)
{
ergebniswort = join(ergebnisteile, "");
}
ergebniszahl = int(ergebniswort);
return ergebniszahl;
}
1