Quello che sto cercando di fare è essenzialmente la stessa cosa di un pulsante Tweet o di un pulsante Condividi/Mi piace di Facebook, e cioè di raschiare una pagina e il più titolo pertinente per un dato. Il miglior esempio a cui riesco a pensare è quando sei sulla prima pagina di un sito web con molti articoli e fai clic su un pulsante Mi piace di Facebook. Otterrà quindi le informazioni corrette per il post relative al (più vicino) pulsante Mi piace. Alcuni siti hanno tag Open Graph, ma alcuni non lo fanno e funzionano ancora.Pagina raschiare e ottenere il titolo o la descrizione più pertinente per le immagini con XPath
Dato che questo viene eseguito da remoto, ho solo il controllo dei dati che voglio targetizzare. In questo caso i dati sono immagini. Piuttosto che recuperare solo il <title>
della pagina, sto cercando in qualche modo di attraversare la cupola al contrario dal punto di partenza di ogni immagine, e trovare il "titolo" più vicino. Il problema è che non tutti i titoli si verificano prima di un'immagine. Tuttavia, la possibilità che l'immagine si verifichi dopo il titolo in questo caso sembra piuttosto alta. Detto ciò, spero di farlo funzionare bene per quasi tutti i siti.
Pensieri:
- trovare il "contenitore" delle immagini e quindi utilizzare il primo blocco di testo.
- Trova i blocchi di testo in elementi che contengono determinate classi ("descrizione", "titolo") o elementi (h1, h2, h3, h4).
Titolo backup:
- utilizzando Open Tag Grafico
- utilizzando solo il
<title>
- Utilizzando tag ALT solo
- Utilizzando meta tag
Sommario: Estrazione le immagini non è il problema, è come ottenere titoli rilevanti per loro.
Domanda: Come procederesti per ottenere titoli pertinenti per ciascuna immagine? Forse usando DomDocument o XPath?
Onestamente, dopo aver raschiare con PHP, se è possibile distribuirlo tramite chiamate REST a un piccolo server Web Java, è possibile utilizzare JSOUP per ottenere facilmente l'accesso a tutti questi elementi e attributi. JSOUP è come jQuery per Java e utilizza la stessa sintassi. Vorrei che fosse disponibile per PHP in quanto avrebbe fatto sparire il tuo problema in pochi secondi! – jmort253
ci sono diverse librerie disponibili che trattano l'estrazione di contenuti dalle pagine, anche se non ne conosco una che tratta direttamente con le immagini. ma potresti ottenere alcune idee e indicazioni o essere in grado di usarle. eccone uno: http://code.google.com/p/boilerpipe/wiki/Components –
Grazie per i tuoi pensieri.Ho aggiornato la mia domanda per mirare più alla "logica" dietro l'ottenimento di titoli o descrizioni rilevanti per ciascuna immagine piuttosto che come ottenere le immagini stesse. – stwhite