


Utilisez file_get_contents et curl pour écrire la collection
Jul 29, 2017 pm 06:27 PMOn constate souvent que les données à utiliser se trouvent toutes sur le même site Internet, et le format de présentation des données est le même. Par exemple, il existe des milliers de produits sur Taobao ou Amazon. Si vous saisissez les informations manuellement, le résultat est le même. La charge de travail sera trop lourde. À ce stade, nous pouvons écrire un programme de collecte pour la collecter et l'afficher directement. Le serveur prend en charge file_get_contents et curl
Ajoutez d'abord une zone de texte et un bouton de soumission à la page. La zone de texte est utilisée pour saisir l'adresse de la page de collection.
La collection doit utiliser la fonction d'interception régulière
function preg_substr($start, $end, $str) // 正则截取函数 { $temp = preg_split($start, $str); $content = preg_split($end, $temp[1]); return $content[0]; }
La collection doit utiliser la fonction d'interception de chaîne
function str_substr($start, $end, $str) // 字符串截取函数 { $temp = explode($start, $str, 2); $content = explode($end, $temp[1], 2); return $content[0]; }
Il existe également une fonction pour enregistrer le contenu collecté :
function writelog($str) { @unlink("log.txt"); $open=fopen("log.txt","a" ); fwrite($open,$str); fclose($open); }
Parfois, le contenu collecté est incohérent avec le contenu que nous visualisons via le navigateur, ce qui nous empêche de trouvez l'expression régulière correcte, ici vous pouvez ouvrir le fichier txt enregistré et y trouver la chaîne interceptée correcte.
Si vous avez besoin de collecter des images, vous devez utiliser la fonction image :
function getImage($url, $filename='', $dirName, $fileType, $type=0) { if($url == ''){return false;} //获取文件原文件名 $defaultFileName = basename($url); //获取文件类型 $suffix = substr(strrchr($url,'.'), 1); if(!in_array($suffix, $fileType)){ return false; } //设置保存后的文件名 $filename = $filename == '' ? time().rand(0,9).'.'.$suffix : $defaultFileName; //获取远程文件资源 if($type){ $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file = curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $file = ob_get_contents(); ob_end_clean(); } //设置文件保存路径 $dirName = $dirName.'/'.date('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/'; if(!file_exists($dirName)){ mkdir($dirName, 0777, true); } //保存文件 $res = fopen($dirName.$filename,'a'); fwrite($res,$file); fclose($res); return $dirName.$filename; }
Ajoutez le code de collection, car ajouter le code de collection ici ne permet pas la soumission, directement au-dessus de l'image ;
Prenons comme exemple une page produit sur Amazon : saisissez un lien produit :
Regardez les résultats de la collecte comme indiqué ci-dessous uniquement. est affiché ici. Il est relativement simple de l'ajouter à la base de données. Maintenant, je vais présenter la collection de liens de saisie automatique de niveau inférieur ou de rotation automatique des pages lorsque j'ai le temps.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment réaliser la conversion mutuelle entre les requêtes CURL et python en python

Tutoriel sur la mise à jour de la version curl sous Linux !

Poésie aléatoire d'application native Hongmeng

Utilisez la fonction File.length() de Java pour obtenir la taille du fichier

Sortie de PHP8.1 : introduction de curl pour le traitement simultané de plusieurs requêtes

Comment convertir un blob php en fichier

Renommez les fichiers à l'aide de la fonction File.renameTo() de Java

Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP
