• User Attivo

    IMHO non viene visto...
    Quando lo spider arriva sulla tua pagina, vede un codice javascript, e a detta di molti gli spider non leggono/eseguono i javascript. A parte questo, anche se lo spider eseguisse quel JS capirebbe subito che il contenuto proviene da un altro sito.
    Ti consiglio, se ne hai la possibilità, di utilizzare una qualsiasi tecnologia di scripting server side per quello che vuoi fare. Lo faccio pure io (ho un sito sullOpenSource che prende le news da sourceforge), ma avendolo scritto in ASP.NET (C#), quando lo spider, o anche il visitatore normale, visitano il sito, il feed RSS appare dentro l'html (questi sono i primi due record nel feed in questo momento così come vengono inseriti nella pagina - copio & incollo):

    <table class="storyleft" cellspacing="0" border="0" style="border-style:none;border-collapse&#58;collapse;">
    	<tr class="storyleft">
    
    		<td>
    							<a href="http&#58;//sourceforge.net/project/shownotes.php?release_id=375053" target="_blank" rel="nofollow">
    								XOOPS Official Module Packages XOOPS2 RMSOFT Downloads Plus released &#40;XOOPS Dynamic Web CMS&#41;
    							</a>
    							
    
    							Total project downloads to date&#58; 1234734  Project description&#58; XOOPS is a dynamic web content management system written in PHP for the MySQL database. Its object orientation makes it an ideal tool for developing small or large community websites, intra company and corporate portals, weblogs and much more.  [url="http&#58;//sourceforge.net/project/showfiles.php?group_id=41586&release_id=375053"]&#91;Download&#93;  [url="http&#58;//sourceforge.net/project/shownotes.php?release_id=375053"]&#91;Release Notes&#93;
    							01/12/2005
    							
    
    
    							
    
    						</td>
    	</tr><tr class="storyleft">
    		<td>
    							<a href="http&#58;//sourceforge.net/project/shownotes.php?release_id=375052" target="_blank" rel="nofollow">
    								B3 1.1 1.1.0 beta 1 released &#40;Big Brother Bot &#40;B3&#41;&#41;
    							</a>
    							
    
    							Total project downloads to date&#58;   Project description&#58; BigBrotherBot &#40;B3&#41; is a cross-platform, cross-game game administration bot written in python. B3 allows easy, in-game administration of game servers with multiple user access levels. It uses a database &#40;currently MySQL&#41; for storage and fast lookups.  [url="http&#58;//sourceforge.net/project/showfiles.php?group_id=124560&release_id=375052"]&#91;Download&#93;  [url="http&#58;//sourceforge.net/project/shownotes.php?release_id=375052"]&#91;Release Notes&#93;
    
    							01/12/2005
    							
    
    							
    
    						</td>
    

    Così credo sia più facile che lo spider consideri il testo come un aggiornamento della pagina...
    Cmq ti consiglio di aspettare conferme da chi ha più esperienza di me.


  • Super User

    Ciao Marco_rm,

    lo spider non legge il tipo di contenuto aggiunto da quello script che esegue una serie di "document.write" all'interno di un tag <script>

    Devi prelevare i feed RSS con uno script esguito server-side (php, asp, asp-net) ed usarli per comporre lato server del codice HTML standard.


  • Bannato Super User

    Beke pelandrone 🙂 posta 4 righe di condice prima che cominci a togliere links a destra e a manca !!! 🙂


  • Super User

    E va bene, tanto è quasi Natale 😄

    
    Dim objXMLHTTP, xml
    
    strHTTPFilePath = "URLdella pagina da grabbare"
    		
    ' Create an xmlhttp object:
    Set xml = Server.CreateObject&#40;"Microsoft.XMLHTTP"&#41;
    ' Or, for version 3.0 of XMLHTTP, use&#58;
    ' Set xml = Server.CreateObject&#40;"MSXML2.ServerXMLHTTP"&#41;	
    			
    ' Opens the connection to the remote server.
    xml.Open "GET", strHTTPFilePath, False
    			
    ' Actually Sends the request and returns the data&#58;
    xml.Send
    			
    ' codice di risposta del server
    status = CInt&#40;xml.status&#41;
    			
    ' Se lo stato e` 200, e` ok
    if status <> 200 then
    	Response.write "
    
    Errore&#58; " & status & "</p>"
    	Response.end&#40;&#41;
    end if
    		
    strContent = Cstr&#40;xml.responseText&#41;
    Set xml = Nothing
    
    

    Il linguaggio è ASP classic.

    Nella variabile "strHTTPFilePath" metti l'URL della pagina da grabbare, compreso il protocollo (http://).

    Nella variabile "strContent" viene immagazzinato il codice della pagina grabbata, di qualunque tipo essa sia.

    Poi ognuno si riformatta i contenuti come vuole.


  • User

    Sto provando con questo script in php:

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <ul><?php

    $insideitem = false;
    $tag = "";
    $title = "";
    $description = "";
    $link = "";

    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    $tag = $name;
    } elseif (strtolower($name) == "item") {
    $insideitem = true;
    }
    }

    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link;
    if (strtolower($name) == "item") {
    printf("* [url='%s']%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s",trim($description));
    $title = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }
    }

    function characterData($parser, $data) {
    global $insideitem, $tag, $title, $description, $link;
    if ($insideitem) {
    switch (strtolower($tag)) {
    case "title":
    $title .= $data;
    break;
    case "description":
    $description .= $data;
    break;
    case "link":
    $link .= $data;
    break;
    }
    }
    }

    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    // Carico indirizzo feed rss delle news di WebMasterPoint.org
    $fp = fopen("http://rss.news.yahoo.com/rss/world","r")
    // ALTRI FEED UTILI
    // Ultimi articoli di WebMasterPoint.org: http://www.webmasterpoint.org/rss/articoli.xml
    // Ultimi post del forum: http://forum.webmasterpoint.net/external.php?type=RSS
    // Ultimi post del forum ASP: http://forum.webmasterpoint.net/external.php?type=RSS&forumids=24
    // Ultimi post del forum PHP: http://forum.webmasterpoint.net/external.php?type=RSS&forumids=28
    // Ultimi post del forum Flash: http://forum.webmasterpoint.net/external.php?type=RSS&forumids=13
    // Ultimi post del forum Snitz Forum: http://forum.webmasterpoint.net/external.php?type=RSS&forumids=25
    // Ultimi post del forum Off Topics: http://forum.webmasterpoint.net/external.php?type=RSS&forumids=19

    or die("Error reading RSS data.");
    while ($data = fread($fp, 4096))
    xml_parse($xml_parser, $data, feof($fp))
    or die(sprintf("XML error: %s at line %d",
    xml_error_string(xml_get_error_code($xml_parser)),
    xml_get_current_line_number($xml_parser)));
    fclose($fp);
    xml_parser_free($xml_parser);

    ?>
    </body>
    </html>

    Ma adesso nella mia pagina in html come posso richiamare questo script.. con le news dentro..?
    In questa maniera lo spider riesce a leggere le news..?
    Grazie delle risposte.. Scusate ma non sono molto esperto!!


  • Super User

    Questa è più completa perchè comprende anche la riformattazione dei feed. Daltronde io quella in asp non l'ho usata per maneggiare dei feed, ma delle pagine normali, per cui quella parte di codice non l'ho mai scritta.

    Per eseguire lo script devi rinominare la pagina con estensione php, se questo è impossibile devi agire sulle impostazioni del server per far processare a PHP anche le pagine HTML, ma non è detto che tu possa farlo e anche le prestazioni del server potrebbero risentirne.

    Comunque questo è il tipo di script che aggiunge contenuto visibile agli spider.


  • User

    Piano piano.. arriviamo alla fine ...
    Allora ho capito che lo script in php va bene fino qui tutto ok!!
    Ho provato a inserirlo in una pagina che si chiama 1.php dentro lo spazio web del hosting.
    Se lo carico con url completo esempio http:\1.php si aprono tutte le news.
    Adesso devo inserire queste news contenenti dentro 1.php nella mia homepage che si chiama index.htm
    Come devo fare.. ?


  • Super User

    Devi rinominare la tua pagina "index.html" come "index.php" e cambiare tutti i link che vi puntano dalle altre pagine del sito (se puntano semplicemente alla root, senza il nome del file non è necessario).

    Poi inserire lo script nella index.php. come ho cercato di spiegare prima 🙂


  • User

    Domanda..
    Nella pagina che richiama lo script php.. come posso migliorare output.. delle news.. sempre che i contenuti delle news siano viste dagli spider..?

    • Vorrei realizzare un newsticker scorrevole.. consigli..?

  • Super User

    Ti consiglio di postare in PHP, a questo punto 🙂
    Troverai senz'altro persone preparate che ti sapranno consigliare, per primi i moderatori