ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingพอจะมีวิธีใช้ CURL ดึงข้อมูลหน้าเว็บที่ใช้ AJAX บ้างหรือเปล่าครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: พอจะมีวิธีใช้ CURL ดึงข้อมูลหน้าเว็บที่ใช้ AJAX บ้างหรือเปล่าครับ  (อ่าน 613 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Narkorns
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 116



ดูรายละเอียด
« เมื่อ: 26 มกราคม 2018, 00:39:12 »

สวัสดีครับ คำถามตามหัวข้อเลยครับ พอดีนั่งงมมาประมาณ 4 วันแล้วครับหาวิธีไม่ได้สักที
เป้าหมายของผมคือใช้ CURL เก็บข้อมูลหน้าเว็บตาม URL เช่น

httpx://www.example/category/?page=1
httpx://www.example/category/?page=2
httpx://www.example/category/?page=3

แต่กลับได้ข้อมูลหน้าเว็บแบบเดียวกันมาเลยครับ ซึ่งผมได้ตรวจสอบดูแล้วเวลาเปลี่ยนหน้า จะเรียกหน้าที่เป็น AJAX มาตามลิงค์แบบน้ี้ เช่น

httpx://www.example/category/?ajax=t&page=1
httpx://www.example/category/?ajax=t&page=2
httpx://www.example/category/?ajax=t&page=3

ซึ่งผลก็ลองใช้ CURL เรียก URL ตามด้านบน ข้อมูลที่ได้เป็นข้อมูลแบบ JSON แต่ข้อมูลกลับเหมือนเดิม และเหมือนกันทุกหน้า ตามแบบแรกเลยครับ
ต่างกันเพียงรูปแบบข้อมูล

โค้ดหลัก ๆ ที่ผมใช้มีดังนี้ครับ

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
curl_close ($ch);
echo $result;

ประมาณนี้ครับ.... ส่วนเรื่องการลองก็ลองเปลี่ยนและเพิ่มตัว curl_setopt ตามที่หาวิธีแก้จากเว็บต่าง ๆ แต่ก็ไม่ได้ผลครับ

มีใครที่เคยเจอปัญหาแบบนี้บ้างหรือเปล่าครับ หรือใครพอจะมีวิธีแนะนำบ้างครับ ขอบคุณครับ  wanwan017 wanwan017

« แก้ไขครั้งสุดท้าย: 26 มกราคม 2018, 00:41:02 โดย Narkorns » บันทึกการเข้า
topbaba2
ก๊วนเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 244



ดูรายละเอียด
« ตอบ #1 เมื่อ: 26 มกราคม 2018, 00:54:13 »

มันไม่ใช่ ajax ครับ เค้าตั้งชื่อ query ไว้ว่า ajax เฉยๆ
ทีนี้ลองเช็ค header ที่ส่ง request ดูครับ ฝั่งนู้นอาจจะเขียนกันบอทไว้
ดังนั้นเราต้องเลียนแบบการทำงานของบราวเซอร์ให้ได้มากที่สุดครับ
ใช้ chrome ดูว่าเราส่ง request อะไรไปตอนเข้าไปที่หน้านั้น
บันทึกการเข้า

Narkorns
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 116



ดูรายละเอียด
« ตอบ #2 เมื่อ: 26 มกราคม 2018, 09:53:23 »

มันไม่ใช่ ajax ครับ เค้าตั้งชื่อ query ไว้ว่า ajax เฉยๆ
ทีนี้ลองเช็ค header ที่ส่ง request ดูครับ ฝั่งนู้นอาจจะเขียนกันบอทไว้
ดังนั้นเราต้องเลียนแบบการทำงานของบราวเซอร์ให้ได้มากที่สุดครับ
ใช้ chrome ดูว่าเราส่ง request อะไรไปตอนเข้าไปที่หน้านั้น

ขอบคุณมากครับ
ต้องดูที่ส่วนของ Request Header ใช่หรือเปล่าครับ
แล้วการส่ง Request เลียนแบบการทำงานของบราวเซอร์ นี่ใช้ CURLOPT_HEADER ใช่หรือเปล่าครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์