Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Curl simuliert die Anmeldung und ruft die Dateninstanz ab

PHP Curl simuliert die Anmeldung und ruft die Dateninstanz ab

墨辰丷
墨辰丷Original
2018-05-29 11:14:451544Durchsuche

cURL ist eine leistungsstarke PHP-Bibliothek, mit der Webseiten einfach und effektiv gecrawlt und Inhalte gesammelt werden können. Curl bietet eine Fülle von Funktionen Weitere Informationen zu cURL. In diesem Artikel wird die simulierte Anmeldung bei Open Source China (Oschina) als Beispiel verwendet.

Curl() von PHP ist beim Crawlen von Webseiten relativ effizient und unterstützt Multithreading, während file_get_contents(). Die Effizienz ist etwas geringer. Natürlich müssen Sie die Curl-Erweiterung aktivieren, wenn Sie Curl verwenden.

Code-Praxis

Sehen wir uns zunächst den Login-Teil des Codes an:

//模拟登录 
function login_post($url, $cookie, $post) { 
  $curl = curl_init();//初始化curl模块 
  curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 
  curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 
  curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 
  curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 
  curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 
  curl_exec($curl);//执行cURL 
  curl_close($curl);//关闭cURL资源,并且释放系统资源 
}

Funktion login_post( ) Initialisieren Sie zuerst curl_init() und verwenden Sie dann curl_setopt(), um relevante Optionsinformationen festzulegen, einschließlich der zu übermittelnden URL-Adresse, gespeicherter Cookie-Dateien, Postdaten (Benutzername und Passwort und andere Informationen), ob Informationen zurückgegeben werden sollen, usw., und dann führt „curl_exec“ „curl“ aus und schließlich gibt „curl_close()“ die Ressourcen frei. Beachten Sie, dass PHPs eigene http_build_query() Arrays in verbundene Strings konvertieren kann.

Wenn die Anmeldung erfolgreich ist, müssen wir als Nächstes die Seiteninformationen abrufen, nachdem die Anmeldung erfolgreich war.

//登录成功后获取数据 
function get_content($url, $cookie) { 
  $ch = curl_init(); 
  curl_setopt($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_HEADER, 0); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie 
  $rs = curl_exec($ch); //执行cURL抓取页面内容 
  curl_close($ch); 
  return $rs; 
}

Die Funktion get_content() initialisiert ebenfalls zuerst Curl, legt dann relevante Optionen fest, führt Curl aus und gibt Ressourcen frei. Unter anderem setzen wir CURLOPT_RETURNTRANSFER auf 1, um automatisch Informationen zurückzugeben, und CURLOPT_COOKIEFILE kann die beim Anmelden gespeicherten Cookie-Informationen lesen und schließlich den Seiteninhalt zurückgeben.

Unser oberstes Ziel ist es, die Informationen nach der simulierten Anmeldung zu erhalten. Dabei handelt es sich um nützliche Informationen, die nur nach erfolgreicher normaler Anmeldung erhalten werden können. Als Nächstes nehmen wir die Anmeldung bei der mobilen Version von Open Source China als Beispiel, um zu sehen, wie die Informationen nach erfolgreicher Anmeldung erfasst werden.

//设置post的数据 
$post = array ( 
  'email' => 'oschina账户', 
  'pwd' => 'oschina密码', 
  'goto_page' => '/my', 
  'error_page' => '/login', 
  'save_login' => '1', 
  'submit' => '现在登录' 
); 
 //登录地址 $url = "http://m.oschina.net/action/user/login"; //设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //登录后要获取信息的地址 $url2 = "http://m.oschina.net/my"; //模拟登录 
login_post($url, $cookie, $post); //获取登录页的信息 $content = get_content($url2, $cookie); //删除cookie文件 
@ unlink($cookie); //匹配页面信息 $preg = "/<td class=&#39;portrait&#39;>(.*)<\/td>/i"; 
preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //输出内容 echo $str;

Nutzungszusammenfassung

1. Curl_setopt zum Festlegen verwenden die Ziel-URL und andere Optionen;

3. Curl_Exec ausführen

5.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Empfehlungen:


Knoten basiert auf Puppenspieler

Simulierte Anmeldung

Detaillierte Erklärung der Crawling-Schritte

PHP verwendet Curl, um
simulierte Anmeldung

und detaillierte Schritte zur Datenerfassung

Puppenspieler
simuliert zu implementieren login

capture Holen Sie sich den Implementierungscode der Seite


Das obige ist der detaillierte Inhalt vonPHP Curl simuliert die Anmeldung und ruft die Dateninstanz ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn