Vreau sa parsez o pagina de rezultate Google si sa extrag numarul de rezultate...
Cum se face ? Nu reusesc sa deschid acel fisier... de ex:
Multumesc....Cod:http://www.google.ro/search?hl=ro&q=keyword&btnG=Caut%C4%83&meta=cr%3DcountryRO
Versiune printabilă
Vreau sa parsez o pagina de rezultate Google si sa extrag numarul de rezultate...
Cum se face ? Nu reusesc sa deschid acel fisier... de ex:
Multumesc....Cod:http://www.google.ro/search?hl=ro&q=keyword&btnG=Caut%C4%83&meta=cr%3DcountryRO
Sugerez Google API,
http://labs.google.com
am pus topic si pe phpromania (inainte sa pun aici)
nu as vrea sa folosesc api, prin parsare mi`ar fi cel mai usor
problema e ca nu se deschide o pagina cu mai multi parametri ... o pagina fara param merge fara probleme ...
Detaliaza...Citat:
Postat în original de GExGE @ Feb 9 2006, 03:39 PM) [post=9942
Este impotriva TOS Google, sa parsezi rezultat]Citat:
Postat în original de GExGE @ Feb 9 2006, 01:39 PM) [post=9942
nu as vrea sa folosesc api, prin parsare mi`ar fi cel mai usor
[/QUOTE]
Este impotriva TOS Google, sa parsezi rezultatele, fara a folosi un API. :)
google robots.txt
Citat:
User-agent: *
Allow: /searchhistory/
Disallow: /search
Disallow: /groups
Disallow: /images
Disallow: /catalogs
.....
functia facuta de mine:
de ce nu merge ?Cod:function rez_google($kw_rez_google)
{
$s = '';
$link = "http://www.google.ro/search?hl=ro&q=%22" . $kw_rez_google . "%22&btnG=Caut%C4%83&meta=cr%3DcountryRO";
$f = @fopen($link, "rb");
while($b) {
$a = @fread($f, 4096);
if ($a == '') $b=0;
$s .= $a;
}
@fclose($f);
$s = str_replace("\t", "", $s);
$s = str_replace("\r", "", $s);
$s = str_replace("\n", "", $s);
$x = split ("din aproximativ <b>",$s);
$s = $x[1];
$x = split ("</b> pentru", $s);
$s = $x[0];
return $s;
}
da la link pun unul fara parametri . .deschide pagina si o parseaza .. .asa nu vrea ,,,
Gexge tu ai vazut ce am spus eu ? :rolleyes:
<div class='quotetop'>QUOTE(GExGE @ Feb 9 2006, 05:50 PM) Quoted post</div><div class='quotemain'>
functia facuta de mine:
de ce nu merge ?Cod:function rez_google($kw_rez_google)
{
$s = '';
$link = "http://www.google.ro/search?hl=ro&q=%22" . $kw_rez_google . "%22&btnG=Caut%C4%83&meta=cr%3DcountryRO";
$f = @fopen($link, "rb");
while($b) {
$a = @fread($f, 4096);
if ($a == '') $b=0;
$s .= $a;
}
@fclose($f);
$s = str_replace("\t", "", $s);
$s = str_replace("\r", "", $s);
$s = str_replace("\n", "", $s);
$x = split ("din aproximativ <b>",$s);
$s = $x[1];
$x = split ("</b> pentru", $s);
$s = $x[0];
return $s;
}
da la link pun unul fara parametri . .deschide pagina si o parseaza .. .asa nu vrea ,,,
[/QUOTE]
citeste ceva si despre functia file().daca nu rezolvi nimic pana maine o sa incerc sa arunc si eu o privire. spor.
In mare parte am rezolvat!
Ascultand sfatul lui Criti am folosit API si o clasa pentru aceasta: http://dietrich.ganx4.com/nusoap/
Numai ca numarul rezultatelor nu este corect, acesta fiind mult mai mic decat real.
Take a look: http://kw.gexge.com/info.php
Sursa:
Cod:<html>
<head>
<title>googly.php</title>
</head>
<body>
<h1>Googly</h1>
<form method="GET">
Query: <input name="query" value="<? print $HTTP_GET_VARS['query'] ?>">
<input type="submit" name="Search">
</form>
<?
# Run the search only if you're provided a query to work with.
if ($HTTP_GET_VARS['query']) {
# Use the NuSOAP php library.
require_once('nusoap.php');
# Set parameters.
$parameters = array(
'key'=>'z00000000000008Zawd00000000etXaj',
'q' => $HTTP_GET_VARS['query'],
'start' => 0,
'maxResults' => 10,
'filter' => false,
'restrict' => '',
'safeSearch' => false,
'lr' => 'lang_ro',
'ie' => '',
'oe' => ''
);
# Create a new SOAP client, feeding it GoogleSearch.wsdl on Google's site.
$soapclient = new soapclient("http://api.google.com/search/beta2");
# Query Google.
$results = $soapclient->call('doGoogleSearch',$parameters, 'urn:GoogleSearch',
'urn:GoogleSearch');
# Results?
if ( is_array($results['resultElements']) ) {
echo " q => cuvant cautat, <br> start => 0, maxResults => 10, <br> filter => false, <br> restrict => , <br> safeSearch => false, <br> lr => lang_ro, <br> ie => , <br> oe => ";
print "<p>Your Google query for '" . $HTTP_GET_VARS['query'] . "' found "
. $results['estimatedTotalResultsCount'] . " results, the top ten of which are:</p>";
foreach ( $results['resultElements'] as $result ) {
"<p><a href='" . $result['URL'] . "'>" .
( $result['title'] ? $result['title'] : 'no title' ) .
"</a><br />" . $result['URL'] . "<br />" .
( $result['snippet'] ? $result['snippet'] : 'no snippet' ) .
"</p>";
}
}
# No results.
else {
print "Your Google query for '" . $HTTP_GET_VARS['query'] . "' returned no results";
}
}
?>
</body>
</html>
nu-i prea frumos ce vrei sa faci, dar incearca functia asta:
---
nu ma lasa sa postez adrese web inca :rolleyes: