Vanuit mijn java applicatie zou ik graag een query richting Google Scholar willen doen. De standaard Google Web API (die overigens niet verder ontwikkeld wordt) ondersteunt alleen standaard google searches en de resultaten daarvan bevatten teveel troep.
Overigens ben ik niet veeleisend, ik hoef alleen maar te weten dat er uberhaupt resultaten zijn.
Zelf dacht ik aan een standaard method die de url opstuurt en html pagina daarvan saved, vervolgens wordt er simpel gekeken of er uberhaupt relevante links in de html pagina zitten.
Bijv ik stuur deze link op:
http://scholar.google.nl/...lus+subtillis&btnG=Zoeken
het feit alleen al dat er resultaten zijn: Resultaten 1 - 10 van circa 21 voor dna microarray bacillus subtillis (0.10 seconden) , is voldoende, meer hoef ik niet te weten.
Maar helaas pindakaas, dat levert een fijne
op.
Heeft iemand enig idee hoe ik wel een dergelijke query goed kan laten doorkomen?
Overigens ben ik niet veeleisend, ik hoef alleen maar te weten dat er uberhaupt resultaten zijn.
Zelf dacht ik aan een standaard method die de url opstuurt en html pagina daarvan saved, vervolgens wordt er simpel gekeken of er uberhaupt relevante links in de html pagina zitten.
Bijv ik stuur deze link op:
http://scholar.google.nl/...lus+subtillis&btnG=Zoeken
het feit alleen al dat er resultaten zijn: Resultaten 1 - 10 van circa 21 voor dna microarray bacillus subtillis (0.10 seconden) , is voldoende, meer hoef ik niet te weten.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| public void checkGoogle(String theUrl){ final String FS = File.separator; try { URL gotoUrl = new URL(theUrl); InputStreamReader isr = new InputStreamReader(gotoUrl.openStream()); BufferedReader in = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); String inputLine; boolean isFirst = true; //grab the contents at the URL while ((inputLine = in.readLine()) != null){ sb.append(inputLine+"\r\n"); } createAFile("testOutput.html", sb.toString()); } catch (MalformedURLException mue) { mue.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } public static void createAFile(String outfile, String content) throws IOException { FileOutputStream fileoutputstream = new FileOutputStream(outfile); DataOutputStream dataoutputstream = new DataOutputStream(fileoutputstream); dataoutputstream.writeBytes(content); dataoutputstream.flush(); dataoutputstream.close(); } |
Maar helaas pindakaas, dat levert een fijne
Java:
1
2
3
4
| java.io.IOException: Server returned HTTP response code: 403 for URL: http://scholar.google.nl/scholar?hl=nl&lr=&q=dna+microarray+bacillus+subtillis&btnG=Search at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) |
op.
Heeft iemand enig idee hoe ik wel een dergelijke query goed kan laten doorkomen?