已知cookie的情况下,curl模拟请求并获取后台内容

本文介绍如何利用PHP的cURL库从指定网站抓取数据,并通过正则表达式解析提取所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

curl获取数据: index.php

$ch = curl_init();
$url = 'http://www.lifangm.com/adobe/catalog_main.php';
$header = array(
    'cookie:*******'
);
// 添加apikey到header
curl_setopt($ch, CURLOPT_HTTPHEADER  , $header);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Firefox/50.0');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
// 执行HTTP请求
curl_setopt($ch , CURLOPT_URL , $url);
$res = curl_exec($ch);
curl_close($ch);
抓取数据并保存:ser.php

$url="http://localhost/indexs.php";
$str=file_get_contents($url);
//echo $str;
$reg = "#<a\s*\S*\s*oncontextmenu[^>]*>(<font[^>]*>\S*<\/font>)?([^\[]*)\[ID:(\d+)\]#isU";
preg_match_all($reg,$str,$arr);
unset($arr[0]);
foreach ($arr[1] as $k => $r) {
    $array[] = array($arr[1][$k],$arr[2][$k],$arr[3][$k]);
}
var_dump($array);die;

PHP中的cURL库可以用于发送HTTP请求且支持处理Cookie。如果你想要同时使用cURL发送带Cookie的GET或POST请求获取服务器返回的内容以及响应头中的Set-Cookie部分,你可以按照以下步骤操作: 1. **初始化cURL会话**: ```php $ch = curl_init(); ``` 2. **设置cURL选项**: - `CURLOPT_URL` 设置你要请求的URL: ```php curl_setopt($ch, CURLOPT_URL, 'http://example.com'); ``` - `CURLOPT_RETURNTRANSFER` 设置是否将结果作为字符串返回,而不是直接输出: ```php curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); ``` - `CURLOPT_HTTPHEADER` 添加自定义的头部信息,包括Cookie: ```php $cookies = ['Cookie: your_cookie_name=your_cookie_value']; curl_setopt_array($ch, array( CURLOPT_HTTPHEADER => $cookies, )); ``` - 如果你需要POST数据携带Cookie,可以添加`CURLOPT_POSTFIELDS` 和 `CURLOPT_CUSTOMREQUEST` 选项: ```php $data = ['key' => 'value']; curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); ``` 3. **发送请求接收响应**: ```php $response = curl_exec($ch); ``` 4. **检查和保存响应头中的Set-Cookie**: - 使用`curl_getinfo` 获取响应头信息: ```php $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); preg_match_all('/^Set-Cookie:\s*(.*?);?\r\n/i', $headers, $matches); ``` `$matches[1]` 将包含所有Set-Cookie值。 5. **关闭cURL会话**: ```php curl_close($ch); ``` 6. **分析响应内容和保存Cookie**: - 对于响应内容,你可以通过`json_decode`, `html_entity_decode`等函数解析,具体取决于响应类型(如HTML、JSON等)。 - 对于Set-Cookie,它们通常需要存储到客户端,比如`$_COOKIE`全局变量或自定义的数组中供后续请求使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值