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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingปัญหา curl load หน้าเวป ได้บ้างไม่ได้บ้าง เกิดจากกอะไร มีทางแก้ไขไหมครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ปัญหา curl load หน้าเวป ได้บ้างไม่ได้บ้าง เกิดจากกอะไร มีทางแก้ไขไหมครับ  (อ่าน 934 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Mrpoohling
ก๊วนเสียว
*

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

กระทู้: 250



ดูรายละเอียด เว็บไซต์
« เมื่อ: 18 พฤษภาคม 2017, 06:40:59 »

รบกวน สอบถามปัญหา curl ครับ
ผมใช้โค้สด้านล่างอยู่ จากที่สังเกตุ บางครั้งกดรีเฟรช curl ทำงานปรกติ บางครั้ง เหมือนมันไม่ทำงาน เพราะค่าที่ได้ต่างออกไป
ไม่ทราบว่าเราสามารถแก้ไขตรง จุดนี้ได้หรือไม่ครับ

function curl_load_file($URLs) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URLs);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, '');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
$contents = curl_exec($ch);
curl_close($ch);
return $contents;
}

ปล. ผมกำลังจะดึงค่าบางอย่างจาก amzon โดยผ่าน curl ครับ
บันทึกการเข้า

infamous
ก๊วนเสียว
*

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

กระทู้: 295



ดูรายละเอียด
« ตอบ #1 เมื่อ: 18 พฤษภาคม 2017, 09:27:27 »

ขอดู url ที่ต้องการดึงข้อมูลได้มั้ยครับจะดูว่าปลายทางเป็นยังไงบ้าง
บันทึกการเข้า
smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

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

กระทู้: 8,272



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 18 พฤษภาคม 2017, 09:56:30 »

ต้นทางเค้าจับได้ว่าเราใช้ cURL  wanwan007
ใจเยนๆ พลายามหาให้เจอ

ไม่พูดมาก วันนี้วันดี แจก เลย

เชคก่อนเว็บ ok มั้ย เอาโค้ด 200
โค๊ด:
function check_url($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    $headers = curl_getinfo($ch);
    curl_close($ch);

    return $headers['http_code'];
}

แล้วค่อย ดูด
โค๊ด:
function file_get_contents_curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    $chanelCH = rand(1,2);
    switch ($chanelCH) {
    case 1:
        curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; **************************');
        break;
    case 2:
        curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows *******************************************');
        break;
    }
    $cookiefile = 'tmp/cookie.txt';
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
    curl_setopt($ch, CURLOPT_ENCODING , "gzip");
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $data = curl_exec($ch);
    //$content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
    curl_close($ch);
    return $data;   
}

ตย. คือ
จาก


ปรับเป็น
« แก้ไขครั้งสุดท้าย: 18 พฤษภาคม 2017, 09:57:12 โดย smapan » บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
vii
Verified Seller
สมุนแก๊งเสียว
*

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

กระทู้: 946



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 18 พฤษภาคม 2017, 10:03:41 »

อีกปัญหาหนึ่งคือเว็บจากในไทย ดึง URL จากเว็บนอก จะติดแบนวิดธ์ช้าาาามาก จนถึงกับดึงไม่ได้เลย

ยกตัวอย่างคือ WordPress
ผมมีเว็บวางในไทย เวลา WP มีอัพเดททีนึง ต้องกดอัพเดทหลายรอบมากกว่าจะได้ กดแล้วบางที error หาร่องรอยดูเกิดจาก time out คือใช้เวลาเรียก URL นานเกิน
แต่อีกเว็บวางในตปท. เวลา WP มีอัพเดทเหมือนกัน กดคลิกเดียวเสร็จ

แนะนำว่าถ้าที่ดึงเป็นข้อมูล ควรทำ cache ไว้ ในส่วนของการดึง เช่นเก็บไว้สัก 1-7 วัน
แล้วส่วนของการดึงก็ให้ทำ cron รันทุกวันประมาณนี้ เพื่อให้มันรันทุกๆวันแม้วันไหนจะไปเจอเรียกไม่ได้ก็จะมีอีกวันทำอีกเรียกไปจนกว่าจะได้ ส่วนของการเรียกไม่ได้ก็อย่าเพิ่งไปลบ cache ใช้ของเก่าไปก่อน
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์