Heim > php教程 > PHP源码 > Hauptteil

PHP simuliert die Anmeldung und ruft Daten ab

大家讲道理
Freigeben: 2016-11-08 13:43:50
Original
1120 Leute haben es durchsucht

cURL Es handelt sich um eine leistungsstarke PHP-Bibliothek, mit der Sie Webseiten einfach und effektiv crawlen und Inhalte sammeln können. Weitere Informationen finden Sie im PHP-Handbuch . cURL-Informationen. In diesem Artikel wird eine simulierte Anmeldung bei Open Source China (Oschina) als Beispiel verwendet, um Ihnen die Verwendung von cURL näher zu bringen.

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

Eigentlicher Kampfcode


Schauen 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资源,并且释放系统资源 
}
Nach dem Login kopieren

Zuerst die Funktion login_post() initialisiert curl_init(). Verwenden Sie dann curl_setopt(), um relevante Optionsinformationen festzulegen, einschließlich der zu übermittelnden URL-Adresse, der gespeicherten Cookie-Datei, der Postdaten (Benutzername und Passwort usw.), ob Informationen zurückgegeben werden sollen usw., und dann curl_exec führt 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; 
}
Nach dem Login kopieren

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;
Nach dem Login kopieren

Nachdem wir den obigen Code ausgeführt haben, werden wir sehen, dass endlich das Avatarbild des angemeldeten Benutzers erhalten wird.

PHP simuliert die Anmeldung und ruft Daten ab

Nutzungszusammenfassung

1. Curl_setopt verwenden, um die Ziel-URL und andere Optionen festzulegen;

3. Curl_exec, führe Curl aus

4.

Referenzen

"Einführung in Curl und Curl in PHP", Autor unbekannt, http://www.2cto.com/kf/201208/147091.html

" POST-Daten mit PHP CURL“, Autor: Veda, http://www.nowamagic.net/librarys/veda/detail/124

„PHP verwendet Curl, um die Anmeldung bei Discuz zu simulieren und das Posten zu simulieren“, Autor : tianxin, http://www.cnblogs.com/tianxin2001x/archive/2009/10/28/1591311.html

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage