- Home
- Categorie
- Digital Marketing
- Google Search Console e Altri Strumenti
- [Altri] [Altri] Piccola utility per calcolare il rapporto keywords/pagine concorrenti
-
[Altri] [Altri] Piccola utility per calcolare il rapporto keywords/pagine concorrenti
Se vi può essere utile ho buttato giu' uno script in Java per calcolare la "convenienza" ad usare una certa keyword. Fa un semplice rapporto tra il num. medio di richieste di una keywords e le pagine totali concorrenti.
Allora mettete in un file dal nome file.txt l'elenco di richieste per le chiavi (che trovate con google keywords)
Es. per il mio sito ho creato il file.txt
-------------------------- file.txt---------------------
jboss = 33100
jboss client = 320
jboss application = 590
jboss servlet = 260
jboss jsp = 260
jboss ejb = 1000
jboss performance = 58
jboss configuration = 320
jboss struts = 140
jboss j2ee = 210Copiate questo script in un file ReadData.java
--------------------------ReadData.java
[LEFT]```import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;import java.io.FileReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;
import java.util.StringTokenizer;public class ReadData {
public static final String replace( String line, String oldString, String
newString )
{
int i=0;
if ( ( i=line.indexOf( oldString, i ) ) >= 0 ) {
char [] line2 = line.toCharArray();
char [] newString2 = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i).append(newString2);
i += oLength;
int j = i;
while( ( i=line.indexOf( oldString, i ) ) > 0 ) {
buf.append(line2, j, i-j).append(newString2);
i += oLength;
j = i;
}
buf.append(line2, j, line2.length - j);
return buf.toString();
}
return line;
}
public static double search(String key) {
double hits = 0;key = replace(key," ","+");
URL u = null;
try {
u = new URL("INDIRIZZODIGOOGLE/search?hl=it&q="+key);
//System.out.println("URL aperto: " + u);
} catch (MalformedURLException e) {
System.out.println("URL errato: " + u);
}URLConnection c = null;
DataInputStream istream = null;try {
//System.out.print("Connessione in corso...");
c = u.openConnection();
c.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");c.connect();
//System.out.println("ok.");BufferedInputStream b = new BufferedInputStream(c.getInputStream());
istream = new DataInputStream(b);
//System.out.println("Lettura dei dati...");
String s;
StringBuffer sb = new StringBuffer();while ((s = istream.readLine()) != null)
sb.append(s);String page = sb.toString();
int leftOffset= page.indexOf("su circa <b>");
int rightOffset = page.indexOf("</b>",leftOffset);String s_hits = page.substring(leftOffset+12,rightOffset);
s_hits = replace(s_hits,".","");
return Double.parseDouble(s_hits);//System.out.println(page);
}
catch (IOException e) {
System.out.println(e.getMessage());
}
return 0;}
public static void doit() {String filename = "file.txt";
try {
BufferedReader in = new BufferedReader(new FileReader(filename));
String line;
while((line = in.readLine()) != null) { // Read line, check for end-of-file
StringTokenizer st = new StringTokenizer(line,"=");
String key = st.nextToken().trim();
String value = st.nextToken().trim();double hits = search(key);
double doubleVal = Double.parseDouble(value);System.out.println(key+"\t\t\t\t"+(doubleVal/hits)*1000);
}
in.close(); // Always close a stream when you are done with it
}
catch (IOException e) {
// Handle FileNotFoundException, etc. here
}}
public static void main(String[] args) {doit();
}
}
[LEFT]Per compilare[/LEFT] [LEFT]javac ReadData.java Per eseguire [LEFT]java ReadData[/LEFT] [/LEFT] [LEFT]Avrete un output di questo tipo:[/LEFT] [LEFT]jboss 3.844367015098723[/LEFT] [LEFT]jboss client 1.3389121338912136 jboss application 1.1007462686567164 [LEFT]jboss servlet 0.1566265060240964 jboss jsp 0.87248322147651 jboss ejb 0.588235294117647 jboss performance 0.03766233766233767 jboss configuration 0.23703703703703705[/LEFT] [/LEFT] [LEFT]jboss struts 0.10687022900763359[/LEFT] [LEFT]Ovviamente piu' è alto l'indice piu' la keyword è "conveniente"....almeno in senso generale.....per poter iniziare a scremare tra un gruppo di chiavi..... Spero possa servire saluti Francesco[/LEFT] [LEFT]P.s. sostituite METTETE QUI L'INDIRIZZO DI GOOGLE con l'indirizzo di google...non sono utente premium quindi niente link :cry:[/LEFT] **Tipo**: Altri
-
gran bel lavoro, mi installo la Java Virtual Machine su OSX lo testo Grazie!
-
di niente, mi spiace che la formattazione del codice sia pessima, cmq mi ha dato ottimi risultati nella scelta delle chiavi perchè controlla le chiavi in relazione agli effettivi documenti trovati su google.....forse un upgrade potrebbe essere ricercare anche il numero di volte che appare nei siti come "title" quella determinata keyowrd.....o se avete suggerimenti sono ben accetti !
-
Adesso mi impegno a fare una cosa fatta per bene....ci aggiungo altre funzionalità e provo anche a trasformare il .class in .exe
p.s. se non vi dispiace metto l'eseguibile da scaricare sul mio sito, mi becco un pochino di traffico.....stay tuned !