因為程式是內部抓資料用的,不會被攻擊還是幹嘛的,所以寫程式還是以快為主。
抓網頁我就直接用 file_get_contents($url) ,省得寫很多行的 curl
這邊不建議這麼做,因為...
- Yahoo 內部好像也不能用 file_get_contents 來抓資料,是安全性問題。一些 php 的 paas 也是。
- stack overflow 也有說 file_get_contents 的效率很差。
- 我自己的經驗是抓網頁常常會卡很久,失敗,還會造成 vm 當掉。改成 curl 語法,就天下太平了。
所以原本是
$html = file_get_contents($url);
就多花一點點時間寫成這樣
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);