直接用Curl就行,具體爬取的數(shù)據(jù)可以穿參查看結(jié)果,方法不區(qū)分淘寶和天貓鏈接,但是前提是必須是PC端鏈接,另外正則寫(xiě)的不規(guī)范,所以可以自己重寫(xiě)正則來(lái)匹配數(shù)據(jù)。
貢山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),貢山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為貢山1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的貢山做網(wǎng)站的公司定做!
可以用以下4個(gè)方法來(lái)抓取網(wǎng)站 的數(shù)據(jù):
1. 用 file_get_contents 以 get 方式獲取內(nèi)容:
?
$url = '';
$html = file_get_contents($url);
echo $html;
2. 用fopen打開(kāi)url,以get方式獲取內(nèi)容
?
$url = '';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
3. 用file_get_contents函數(shù),以post方式獲取url
?
$data = array(
'foo'='bar',
'baz'='boom',
'site'='',
'name'='nowa magic');
$data = http_build_query($data);
//$postdata = http_build_query($data);
$options = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type:application/x-www-form-urlencoded',
'content' = $data
//'timeout' = 60 * 60 // 超時(shí)時(shí)間(單位:s)
)
);
$url = "";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
4、使用curl庫(kù),使用curl庫(kù)之前,可能需要查看一下php.ini是否已經(jīng)打開(kāi)了curl擴(kuò)展
$url = '';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
只要包含網(wǎng)絡(luò)和字符串處理功能的編程語(yǔ)言理論上都可以寫(xiě)爬蟲(chóng),所以PHP當(dāng)然完全沒(méi)問(wèn)題。如何用PHP寫(xiě)爬蟲(chóng)的前提是你要先調(diào)研清楚爬什么內(nèi)容。這需要你針對(duì)要爬取目標(biāo)做好充分的測(cè)試和準(zhǔn)備工作,否則會(huì)浪費(fèi)很多時(shí)間。
比如一個(gè)簡(jiǎn)單的“傳統(tǒng)型”網(wǎng)站,那真的只需要用file_get_contents函數(shù)加正則就能搞定。覺(jué)的正則匹配數(shù)據(jù)太麻煩可以上x(chóng)path。如果站點(diǎn)有了頻率和IP限制,這時(shí)就要額外準(zhǔn)備好代理IP池了。當(dāng)發(fā)現(xiàn)抓取內(nèi)容是JS渲染的,可能要考慮引入headlessbrowser這種技術(shù)的PHP擴(kuò)展了。對(duì)爬取效率有了要求后,多線程,抓取和解析分離,分布式也是要考慮的了。。。
回到問(wèn)題本身如何寫(xiě)的問(wèn)題,我個(gè)人覺(jué)得爬蟲(chóng)是個(gè)定制化比較高的業(yè)務(wù)需求,需要根據(jù)具體的場(chǎng)景來(lái)規(guī)劃。如果是要寫(xiě)一個(gè)能解決所有爬蟲(chóng)場(chǎng)景的,那就不用自己寫(xiě)了,成熟的開(kāi)源軟件拿來(lái)直接用就行了。非要寫(xiě)的話可以直接參考這些成熟的軟件,自己可以少踩很多坑。
創(chuàng)建一個(gè)新cURL資源
設(shè)置URL和相應(yīng)的選項(xiàng)
抓取URL并把它傳遞給瀏覽器
關(guān)閉cURL資源,并且釋放系統(tǒng)資源
代碼案例: