採集之頁面亂碼及Curl模擬post請求

2021-07-13 14:59:41 字數 2406 閱讀 2183

身為為乙個程式設計人員採集怎麼能不會採集雖說有些不太好但在程式設計時我們難道自己去寫或者找資料素材?

【一】採集的素材時候會出現亂碼現象

可是有時使用file_get_contents或者******xml_load_file採集的素材時候會出現亂碼現象。

通常情況,亂碼有一下幾種可能:

1、面能獲取過來,只是內容亂碼而已

這種問題最簡單,我們採用iconv()和mb_convert_encoding()函式進行轉碼即可

2、當內容都無法正常獲取的時候,分兩種情況第一種是防盜煉,第二種是頁面需要解壓

2.1、防盜煉情況下解決辦法比較簡單,模擬瀏覽器就可以了

<?php  

header('content-type:text/html;charset=utf-8');

$url="";

ini_set('user_agent','mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; .net clr 2.0.50727;)');

$html=file_get_contents($url);

//echo $html;

echo mb_convert_encoding($html,'utf8','gbk');

2.2、需要解壓時,我們可以用以下方式

<?php  

header("content-type:text/html;charset=utf-8");

$url="";

$xml = ******xml_load_file("compress.zlib://".$url);

$json=json_encode($xml);

$arr=json_decode($json,true);

print_r($arr);

【二】curl模擬post請求

有些時候我們會發現file_get_contents()或者******xml_load_file()不好用了

這是因為對方做了一些防範措施

這裡我們就需要curl模擬post請求

header('content-type:text/html;charset=utf-8');  

function curlpost($url,$data,$method)

curl_setopt($ch, curlopt_returntransfer, true);

$tmpinfo = curl_exec($ch);//6.執行

if (curl_errno($ch))

curl_close($ch);//8.關閉

return $tmpinfo;

} $data=array('name' => '1234');

$url="";

$method="get";

$file=curlpost($url,$data,$method);

$file=mb_convert_encoding($file,'utf-8','gbk');

echo $file;

當然還有的需要cookie認證登陸

我們可以這樣

<?php  

$cookie_file = tempnam('./temp','cookie');

function weixinpost($url,$data,$method,$setcooke=false,$cookie_file=false)

if($setcooke==true)else

curl_setopt($ch, curlopt_returntransfer, true);

$tmpinfo = curl_exec($ch);//6.執行

if (curl_errno($ch))

curl_close($ch);//8.關閉

return $tmpinfo;

} $data=array('username' => '***','password'=>'***');

$url="";

$method="post";

$file=weixinpost($url,$data,$method,true,$cookie_file);

echo $file;

$url="";

$method="get";

$file=weixinpost($url,$data,$method,false,$cookie_file);

echo $file;

?>

結束

CURL使用示例之資料採集

ch curl init 初始化 curl setopt ch,curlopt httpheader,array cookie jsessionid 410d5c5a133cb3b00d308f42a106b713 傳送頭資訊,如果遠端伺服器需要session,可以用這種方式偽造 curl seto...

頁面布局之動畫及外掛程式

transition 過渡,緩動 div div hover style div body 過渡形式 動畫延遲時間 單位 ms s transform div div hover style div body 瀏覽器 chrome webkit blink webkit safari webkit ...

需求之頁面設計及布局

一 首頁 可以分為主要功能入口 主要資訊推薦 1 首頁設計要求 依據崗位和頻度定首頁 崗位不同,呈現的資訊不同 崗位不同,入口不同 首頁應包含高頻功能 高頻功能應往前放 二 定位頁 定位頁 通過和使用者的互動錄入一些資訊,然後定位到工作的頁面。定位頁的作用是快速找到具體的工作頁,系統應該有快捷入口,...