PHP: How to download a webpage (aka web scrapping) with PHP PHP: Làm thế nào để tải một trang web (aka web scrapping) với PHP
Posted on 03. Được đăng trên 03. Oct, 2009 by Dragos in Coding , PHP Tháng Mười, 2009 của Dragos tại Coding, PHP
There are many ways of downloading web pages, or web content. Có nhiều cách tải về các trang web, hoặc nội dung web. Personally I like to use cURL for my web scrapping needs, but sometimes I also use fsockopen and file_get_contents . Cá nhân tôi thích sử dụng cho các nhu cầu cURL scrapping web của tôi, nhưng đôi khi tôi cũng sử dụng fsockopen và file_get_contents.
Here are 3 different functions that will allow you to download web content. Dưới đây là 3 chức năng khác nhau mà sẽ cho phép bạn tải trang web nội dung.
cURL : cURL:
function getData($url) { hàm GetData ($ url) ( if($url!='localhost' && $url!='http://localhost') { if ($ url = 'localhost' & & $ url!! = 'http://localhost') ( $ch=curl_init(); $ ch = curl_init (); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt ($ ch, CURLOPT_URL, $ url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.3"); curl_setopt ($ ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.0.1) Gecko/2008070208 Firefox/3.0.3"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,3); curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 3); $result['data']=curl_exec($ch); $ result [ 'dữ liệu'] = curl_exec ($ ch); $result['error']=curl_error($ch); $ result [ 'error'] = curl_error ($ ch); curl_close($ch); curl_close ($ ch); return $result; return $ result; } ) else return $result['error']='err'; else return $ result [ 'error'] = 'err'; } )
fsockopen fsockopen
function getData($url) { $arr=parse_url($url); $fp = fsockopen($arr['host'], 80, $errno, $errstr, 30); if(!$fp) { return false; }else { // send headers $out = "GET ".fsockopen($arr['host'], 80, $errno, $errstr, 30)." HTTP/1.1\r\n"; $out .= "Host: ".str_replace('http://'.$arr['host'],'',$url)."\r\n"; $out .= "User-Agent: FSOCKOPEN\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while(!feof($fp)) { $contents .= fgets($fp, 4096); }; fclose($fp); return $contents; } } GetData chức năng ($ url) ($ arr = parse_url ($ url); $ fp = fsockopen ($ arr [ 'host'], 80, $ errno, $ errstr, 30); if (! $ fp) (return false; ) else (/ / gửi header $ out = "GET" fsockopen ($ arr. [ 'host'], 80, $ errno, $ errstr, 30) "HTTP/1.1. \ r \ n"; $ out .= " Host: ". str_replace ( 'http://'. $ arr [ 'host'],'',$ url)." \ r \ n "; $ out .=" User-Agent: fsockopen \ r \ n " ; $ out .= "Connection: Close \ r \ n \ r \ n"; fwrite ($ fp, $ out); while (! feof ($ fp)) ($ contents .= fgets ($ fp, 4096); ); fclose ($ fp); return $ contents;)) file_get_contents file_get_contents
function getData($url) { hàm GetData ($ url) ( return file_get_contents($url); return file_get_contents ($ url); } )
As you see the easiest way of downloading web content is by using the file_get_contents function, but if you need more options, especially if you are working with the headers, then cURL is the best way to go for you. Như bạn thấy cách dễ nhất của tải nội dung web là sử dụng chức năng file_get_contents, nhưng nếu bạn cần thêm nhiều lựa chọn, đặc biệt là nếu bạn làm việc với các tiêu đề, sau đó cURL là cách tốt nhất để đi cho bạn.
Related posts: Liên quan đến bài viết:
- ferry ardhana phà ardhana












































