php 模擬web 請求

2021-10-14 14:43:12 字數 1255 閱讀 7825

收到別人的請求幫忙爬資料,勤勞的勞動人民遇到了坑

過程:起頭

$ch = curl_init();
既然是模擬web 請求,需要帶上對應的標頭檔案 header

curl_setopt($ch, curlopt_httpheader, $header);
標頭檔案有比較坑的地方,雖然是乙個陣列,但是並不是乙個json 陣列,只是乙個單純的陣列,對應關係由 : 分割

];設定對應的url

curl_setopt($ch, curlopt_url, $url);
收工

curl_setopt($ch, curlopt_returntransfer, 1);

$output = curl_exec($ch);

curl_close($ch);

然後坑來了,人家是https 請求,返回的居然是個null 你說氣不氣

設定跳過驗證

curl_setopt($ch, curlopt_ssl_verifypeer, false);

curl_setopt($ch, curlopt_ssl_verifyhost, false);

try again

返回是亂碼,你氣不氣

上面雖然設定了language, 但是並不會生效,需要重置一下編碼

curl_setopt($ch, curlopt_encoding, '');
但是又出問題了,網頁有反爬機制,返回的是乙個302,直接跳轉了,加上跳轉跟蹤

curl_setopt($ch, curlopt_followlocation, true)
curl_setopt($ch, curlopt_connecttimeout, 5 * 60);
搞定!真收工~

後面就是愉快的,返回引數解析時間了

打工人不要面子的啊

PHP模擬http請求

方法一 利用php的socket程式設計來直接給介面傳送資料來模擬post的操作。建立兩個檔案post.php,getpost.php post.php內容如下 flag 0 params errno errstr 要post的資料 argv array var1 abc var2 how are ...

php模擬http請求

http請求有get,post。php傳送http請求有三種方式 我所知道的有三種,有其他的告訴我 file get contents 詳情見 curl傳送請求。fsocket傳送。下面說使用curl傳送。首先環境需要配置好curl元件。1 2 3 4 5 6 7 8 9 10 在windows中讓...

php 模擬http請求

原文 guzzlehttp模擬表單提交 並用nodejs接受資料 return response js接收資料 const bodyparser require body parser server.listen 80 use bodyparser.urlencoded use bodyparser...