2010-08-24 6 views
2

S'il vous plaît HELP! :(Comment créer un scraper HTML en PHP et le faire fonctionner correctement?

Je cherche à développer un script PHP pour effectuer les opérations suivantes:

  • Scrap une page HTML à distance et d'extraire des données sélectionnées (par exemple une table particulière/div)
  • Utiliser les données extraites et enregistrez dans une base de données (par exemple, MySql)

Quelqu'un peut-il aider?

Merci et apprécions votre rétroaction plus bientôt.

+0

Une mauvaise idée pour analyser HTML. –

+1

En quoi serait-ce une mauvaise idée? – Christophe

+0

A été répondu de nombreuses fois avant: http://stackoverflow.com/search?q=scrape+HTML+php – Gordon

Répondre

6

Utilisez cUrl pour récupérer la page.

Utilisez Simple HTML DOM Parser pour trouver les données dont vous avez besoin.

Finalement, iconv pour convertir les données récupérées dans votre jeu de caractères de base de données.

Et juste une connexion mysql et de simples requêtes pour stocker des données (ne pas oublier de s'échapper).

+0

lol vous étiez plus rapide dans la réponse: d – Christophe

0

Quelle coïncidence, récemment, j'ai travaillé sur un projet similaire. Ma solution finale a été

  1. CURL pour récupérer le contenu de urls
  2. simple HTML DOM Parser pour obtenir DEMANDÉE nécessaire de html en utilisant jquery comme sélecteurs.

Je recommande fortement les deux.

3

est ici un code qui fait le travail:

// Fetch page 
$file = fopen($url, "r"); 

$data = ''; 
while (!feof($file)) { 
// Extract the data from the file/url 
$data .= fgets($file, 1024); 
} 

$doc = new DOMDocument(); 

$doc->loadHtml($data); 

// XPath lets you search DOM documents easily 
$xpath = new DOMXPath($doc); 
$nodelist = $xpath->query('//table[class=mytable]'); 

Cela ira chercher une liste de noeuds, que vous pouvez parcourir, pour toutes les tables avec la classe « matable »

Jetez un oeil à DomDocument et XPath.

Questions connexes