Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua Crawler: Cara Mengendalikan Kuki dalam PHP

Petua Crawler: Cara Mengendalikan Kuki dalam PHP

WBOY
WBOYasal
2023-06-13 14:54:041364semak imbas

Dalam pembangunan perangkak, pengendalian kuki selalunya merupakan bahagian yang penting. Sebagai mekanisme pengurusan keadaan dalam HTTP, kuki biasanya digunakan untuk merekodkan maklumat log masuk pengguna dan tingkah laku mereka adalah kunci untuk perangkak untuk mengendalikan pengesahan pengguna dan mengekalkan status log masuk.

Dalam pembangunan perangkak PHP, pengendalian kuki memerlukan penguasaan beberapa kemahiran dan memberi perhatian kepada beberapa perangkap. Di bawah ini kami terperinci cara mengendalikan kuki dalam PHP.

1. Cara mendapatkan Kuki

Apabila menulis perangkak menggunakan PHP, jika anda perlu log masuk ke tapak web dan kekal log masuk, anda biasanya perlu mendapatkan kuki selepas log masuk. Berikut ialah dua cara biasa untuk mendapatkan kuki.

1. Gunakan CURL untuk mendapatkan Cookie

CURL ialah perpustakaan sumber terbuka yang berkuasa dan pelbagai pakej untuk membina dan memproses URL. Gunakan CURL untuk menghantar permintaan HTTP dan mendapatkan respons.

Untuk menggunakan CURL untuk mendapatkan kuki dalam PHP, anda boleh melengkapkan langkah berikut:

(1) Mulakan objek CURL dan tetapkan parameter yang berkaitan:

<?php
//初始化 CURL
$curl = curl_init();

//设置 CURL 的一些参数
curl_setopt($curl, CURLOPT_URL, 'http://www.example.com/login.php');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'username=your_username&password=your_password');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt');

//执行 CURL 请求并获取响应结果
$response = curl_exec($curl);

Dalam perkara di atas kod , kami menggunakan fungsi curl_init() untuk memulakan objek CURL dan menggunakan fungsi curl_setopt() untuk menetapkan parameter:

  • CURLOPT_URL: tetapkan URL yang diminta;
  • : tetapkan kaedah HTTP permintaan;
  • CURLOPT_POST
  • : Tetapkan data yang dihantar dalam badan permintaan HTTP
  • CURLOPT_POSTFIELDS
  • : Tetapkan cara CURL mengembalikan hasil;
  • CURLOPT_RETURNTRANSFER: Tetapkan fail untuk menyimpan kuki;
  • CURLOPT_COOKIEJAR: Tetapkan fail untuk membaca kuki.
  • CURLOPT_COOKIEFILEAntaranya,
  • dan
akan menyimpan kuki yang dikembalikan oleh pelayan dalam fail

dan membaca kuki dalam permintaan seterusnya. CURLOPT_COOKIEJARCURLOPT_COOKIEFILE(2) Parsing hasil respons dan dapatkan maklumat kuki: cookie.txt

<?php
//解析响应结果,获取 cookie
preg_match_all('/Set-Cookie: (.*);/iU', $response, $cookies);
$cookieStr = implode(';', $cookies[1]);

Dalam kod di atas, kami menggunakan ungkapan biasa untuk menghuraikan hasil respons yang dikembalikan oleh pelayan dan mendapatkan maklumat kuki.

2. Gunakan kaedah GET untuk mendapatkan Kuki

Sesetengah tapak web tidak menyimpan kuki secara setempat selepas log masuk, tetapi mengembalikannya terus kepada pengguna. Pada masa ini kita boleh menggunakan kaedah GET untuk mendapatkan kuki.

Menggunakan kaedah GET dalam PHP untuk mendapatkan Kuki, anda boleh melengkapkan langkah berikut:

(1) Mulakan permintaan GET ke halaman log masuk dan dapatkan nilai Kuki yang dikembalikan oleh

padang.

<?php
$url = 'http://www.example.com/login.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);
curl_close($ch);
preg_match_all('/Set-Cookie: (.*);/iU', $result, $cookies);
$cookies = implode(';', $cookies[1]);

(2) Gunakan kuki ini untuk memulakan permintaan POST ke halaman log masuk untuk mendapatkan kuki log masuk sebenar. Set-Cookie

<?php
$url = "http://www.example.com/login.php";
$data = "username=your_username&password=your_password";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIE, $cookies);
$result = curl_exec($ch);
curl_close($ch);

2. Cara menggunakan kuki

Dalam pembangunan perangkak, selepas mendapatkan kuki, ia biasanya perlu digunakan dalam permintaan seterusnya untuk mengekalkan status log masuk.

Untuk menggunakan Kuki dalam PHP, anda perlu menambah medan Kuki dalam permintaan HTTP, seperti yang ditunjukkan di bawah:

<?php
$url = "http://www.example.com/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookies); //将 Cookie 信息添加到请求头中
$result = curl_exec($ch);
curl_close($ch);

Perlu diambil perhatian bahawa setiap permintaan perlu membawa Kuki yang betul, jika tidak pelayan akan dianggap sebagai tidak log masuk. Kuki boleh disimpan secara tempatan dan dibaca semasa penggunaan berikutnya, atau kuki boleh disimpan dan dimuatkan secara automatik.

3. Masalah dan penyelesaian biasa kuki

Dalam pembangunan perangkak, anda mungkin menghadapi beberapa masalah biasa semasa memproses kuki Berikut ialah beberapa masalah dan penyelesaian biasa untuk anda.

Masalah tamat tempoh kuki

  1. Kuki pada sesetengah tapak web mempunyai tempoh sah yang singkat dan mungkin menjadi tidak sah jika tidak digunakan untuk jangka masa yang lama. Untuk mengelakkan masalah ini, anda boleh menggunakan kuki serta-merta selepas mendapatkannya, atau menyegarkan semula kuki dengan kerap untuk memastikan kesahihan kuki.

Isu storan kuki

  1. Untuk menyimpan kuki dengan lebih mudah, anda boleh menyimpannya dalam fail atau pangkalan data. Jika berbilang pengguna log masuk, anda boleh menggunakan fail yang berbeza atau pasangan nilai kunci untuk menyimpan maklumat kuki pengguna yang berbeza.

Isu keselamatan kuki

  1. Kuki mengandungi maklumat pengguna yang sensitif untuk memastikan keselamatannya, anda boleh menggunakan HTTPS dan protokol keselamatan lain untuk penghantaran yang disulitkan. Di samping itu, anda harus memberi perhatian kepada kerap menyemak dan mengemas kini kuki untuk mengelakkan kebocoran maklumat atau serangan.
4. Ringkasan

Dalam pembangunan perangkak PHP, pengendalian kuki adalah bahagian yang penting dan penting. Artikel ini memperkenalkan kaedah dan langkah berjaga-jaga yang biasa untuk mendapatkan, menyimpan dan menggunakan kuki, dengan harapan dapat memberi inspirasi dan membantu pembangun perangkak PHP. Pada masa yang sama, beri perhatian untuk melindungi privasi pengguna dan keselamatan maklumat, mematuhi undang-undang dan peraturan yang berkaitan, dan jangan sekali-kali menggunakannya untuk tujuan yang menyalahi undang-undang.

Atas ialah kandungan terperinci Petua Crawler: Cara Mengendalikan Kuki dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn