Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah cara saya melaksanakan pengikis web dalam PHP menggunakan perpustakaan Curl?
Cara Melaksanakan Pengikis Web dalam PHP
Pengikisan web melibatkan tiga langkah:
Untuk langkah 1 dan 2, anda boleh menggunakan fungsi Curl terbina dalam PHP:
$curl = new Curl(); $html = $curl->get("http://www.google.com");
Untuk menghuraikan HTML (langkah 3), anda boleh menggunakan ungkapan biasa. Sumber yang berguna untuk memahami ungkapan biasa ialah:
Anda juga boleh menggunakan perisian seperti Regex Buddy untuk memudahkan mencipta dan menguji regex corak.
Penggunaan:
$curl = new Curl(); $html = $curl->get("http://www.google.com"); // Perform regex operations on $html
Kelas PHP:
class Curl { public $cookieJar = "cookies.txt"; public function setup() { // Define HTTP headers $header = array(); $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; // Browsers keep this blank. // Set cURL options curl_setopt($this->curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'); curl_setopt($this->curl, CURLOPT_HTTPHEADER, $header); curl_setopt($this->curl,CURLOPT_COOKIEJAR, $this->cookieJar); curl_setopt($this->curl,CURLOPT_COOKIEFILE, $this->cookieJar); curl_setopt($this->curl,CURLOPT_AUTOREFERER, true); curl_setopt($this->curl,CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->curl,CURLOPT_RETURNTRANSFER, true); } function get($url) { $this->curl = curl_init($url); $this->setup(); return $this->request(); } function getAll($reg,$str) { preg_match_all($reg,$str,$matches); return $matches[1]; } function postForm($url, $fields, $referer='') { $this->curl = curl_init($url); $this->setup(); curl_setopt($this->curl, CURLOPT_URL, $url); curl_setopt($this->curl, CURLOPT_POST, 1); curl_setopt($this->curl, CURLOPT_REFERER, $referer); curl_setopt($this->curl, CURLOPT_POSTFIELDS, $fields); return $this->request(); } function getInfo($info) { $info = ($info == 'lasturl') ? curl_getinfo($this->curl, CURLINFO_EFFECTIVE_URL) : curl_getinfo($this->curl, $info); return $info; } function request() { return curl_exec($this->curl); } }
Atas ialah kandungan terperinci Bagaimanakah cara saya melaksanakan pengikis web dalam PHP menggunakan perpustakaan Curl?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!