2015年3月18日 星期三
2014年12月9日 星期二
curl半人工方式解決驗證碼問題
如果有比較複雜的驗證碼沒辦法用curl擷取資料時,發現有個網站提供另一個思路解決問題,雖然有點麻煩,但也是方法之一....
/**
* 模拟登录
* Design by maben
*/
//初始化变量
$cookie_file = "tmp.cookie";
$login_url = "http://xxx.com/logon.php";
$verify_code_url = "http://xxx.com/verifyCode.php";
echo "正在获取COOKIE...\n";
$curlj = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
$contents = curl_exec($curl);
curl_close($curl);
echo "COOKIE获取完成,正在取验证码...\n";
//取出验证码
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);
$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\n";
//停止运行20秒
sleep(20);
echo "休眠完成,开始取验证码...\n";
$code = file_get_contents("code.txt");
echo "验证码成功取出:$code\n";
echo "正在准备模拟登录...\n";
$post = "username=xxx&pwd=xxx&verifycode=$code";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);
if(substr_count($result,"登录成功")){
echo "登录成功\n";
}else{
echo "登录失败\n";
exit;
}
2014年12月8日 星期一
php curl 使用proxy抓取資料
有時候,特殊場合要用到proxy時,curl也能輕鬆幫你搞定
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://twbotpost.blogspot.tw/"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, 127.0.0.1:8080); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $result=curl_exec($ch); curl_close($ch); 2014年12月3日 星期三
樂天市場-自動購買 搶商品
最近幾天樂天市場在做50%的商品搶購活動
這種活動最常遇到還沒有進入商品頁就被搶完了= ='
研究一下是否可以使用程式自動下單
發現不難,沒有驗證碼,一步一步跟著走就可以了!!
大概流程如下
1.產品訂購頁有hidden資訊,一定要進入取得。
2.確認訂單
3.登入使用者帳號
4.結帳。
大致上沒有太多問題。祝各位搶購成功
這種活動最常遇到還沒有進入商品頁就被搶完了= ='
研究一下是否可以使用程式自動下單
發現不難,沒有驗證碼,一步一步跟著走就可以了!!
大概流程如下
1.產品訂購頁有hidden資訊,一定要進入取得。
2.確認訂單
3.登入使用者帳號
4.結帳。
大致上沒有太多問題。祝各位搶購成功
2014年11月30日 星期日
旅行台灣-RSS
原網址:http://timefortaiwan.tw/tw/news/index_101_601
原本有提供RSS資訊,不過改版後好像消失了。
自己要的資料自己寫!
http://fb1567.bget.ru/timefortaiwan.php
擷取最新消息資料。
原本有提供RSS資訊,不過改版後好像消失了。
自己要的資料自己寫!
http://fb1567.bget.ru/timefortaiwan.php
擷取最新消息資料。
2014年11月13日 星期四
PHP CURL多線程取得資料
function curl_multi_get($urls = array()){
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER,true);
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data[$i] = curl_multi_getcontent($conn[$i]);
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
return $data;
}
資料來源:http://www.kalvin.cn/article/php-curl-multi-thread-request/
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER,true);
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data[$i] = curl_multi_getcontent($conn[$i]);
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
return $data;
}
資料來源:http://www.kalvin.cn/article/php-curl-multi-thread-request/
2014年11月11日 星期二
訂閱:
文章 (Atom)
