ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: webdevils ที่ 14 สิงหาคม 2008, 15:00:16



หัวข้อ: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: webdevils ที่ 14 สิงหาคม 2008, 15:00:16
สคริปที่ดึงข้อมูลเว็บอื่นมาลงใส่ดาต้าเบสหรือสร้างหน้าhtmlของเรา พวกสคริปประเภทนี้เขาเรียกเป็นภาษาอังกฤษว่าอะไรหรอครับ แล้วแนวคิดมันเป็นยังไงครับ ใช้ฟังค์ชั่นประเภทไหนครับ อยากศึกษาครับ ลองphpมาได้ไม่นาน ไม่รู้จะไปลองฟังค์ชั่นไหน   :-*


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: m-16-150 ที่ 14 สิงหาคม 2008, 15:10:34
โค๊ด:
<?php require("xxxxxxxxx.php"); ?>

เปลี่ยน xxxxxxxxx.php  เป็น ชื่อไฟร์หรือ url ที่เราอยากให้ผุดขึ้นในเว็นเรา
 ::)


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: navico ที่ 14 สิงหาคม 2008, 16:01:01
เคยเขียนมั่วๆ อยู่ทีหนึ่ง
ต้องขอบคุณ auto post Flixya


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: ball6847 ที่ 14 สิงหาคม 2008, 16:11:56
เรียกว่า scrapper คับ

แนวคิด
- โหลดเพจลงมาแล้วจัดการคัดเอาเฉพาะข้อมูลที่ต้องการแยกออกมาด้วย regular expression หรือถ้าไม่รู้วิธีใช้ regular expression ก็ต้องใช้ strpos กับ substr ในการตัดเอาข้อมูลออก ซึ่งลำบากกว่า regular expression เยอะเลย

ฟังก์ชั่น แยกชัดๆก็ 2 ประเภทคือฟังก์ชั่นที่ต้องใช้ในการดึงหน้าเว้บ กับฟังก์ชั่นที่ใช้ในการตัดข้อมูลออกมา

ฟังก์ชั่นที่ใช้ในการดึง
- fsockopen , fgets , fputs , fclose ... พวกนี้ต้องใช้เป็นชุดถึงจะดึงหน้าเพจลงมาได้  ต้องมีความรู้ในเรื่อง HTTP พื้นฐานด้วย
- fopen , fread , fwrite , fclose อันนี้คือการเปิดไฟล์นะ แต่มันสามารถเปิด url ได้ด้วย ต้องใช้เป็นชุดเหมือนกัน บางโฮสท์จะปิด  (allow_url_fopen) ซึ่งเราจะเปิด url ด้วยฟังก์ชั่นนี้ไม่ได้
- file_get_contents อันนี้เป็นฟังก์ชั่นสำเร็จจากข้างบน (fopen) เหมือนกันถ้า โฮสท์ปิด  (allow_url_fopen) ก็ใช้ไม่ได้
- curl >> ทำงานเร็วสุด แล้วเหมือนจะเป็นมาตราฐานของทุกโฮสท์ เหมือนจะให้ใช้อันนี้เป็นหลักในการดึงข้อมูล ใช้ง่ายแต่ต้องใช้เวลาศึกษา option มันสักนิด เพราะทำอะไรได้เยอะแยะมาก

**ถ้าดึงข้อมูลจากเว็บที่เป็น https เครื่องต้องมี(เปิด) openssl

นอกจากที่พูดมาข้างบนยังมี พวก class หรือ pear package ที่ทำหน้าที่พวกนี้ แต่ส่วนใหญ่ใช้ fsockopen ทั้งนั้น

แค่นี้ก็พอมั้ง

ปล. ไม่ได้ชำนาญนะ แต่ผมถนัดเรื่องนี้ที่สุดใน PHP ไปได้ทุกที่ที่ไม่มี captcha (captcha เท่านั้นที่เอาอยู่)



โค๊ด:
<?php require("xxxxxxxxx.php"); ?>

เปลี่ยน xxxxxxxxx.php  เป็น ชื่อไฟร์หรือ url ที่เราอยากให้ผุดขึ้นในเว็นเรา
 ::)

อันนี้อย่าเอามาเปิด url นะคับ อาจจะวิบัติ  โดยเฉพาะถ้าไม่ใช่ของเรา :P


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: EThaiZone ที่ 14 สิงหาคม 2008, 22:19:35
Curl ไม่ใช่ตัวเลือกที่ดีที่สุดนะครับ

ถ้่าต้องการเร็วมากจริงๆ ต้อง fsockopen ไปเลย เขียนสด

แถมตัว Curl หลายครั้งก็เรียก dns ช้ากว่า (ผมเคยลอง loopback เข้าโดเมนตัวเอง ผลคืออืด ต้อง fsockopen กลับเร็วกว่า)
แถม Curl มีบั๊กอยู่ เช่น 100 continues

เล่นเอาผมเครียดไปวันหนึ่งแน่ะ (ถ้าใช้ sniffer แต่แรกก็จบไม่แล้ว  :-X)


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: kero ที่ 14 สิงหาคม 2008, 22:54:46
ใช้แต่ไอ้นี่ กับ file($filename) strpos substr 

 ;D regular ไม่รู้จัก ทำไม่เป็น


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: tinnoi ที่ 14 สิงหาคม 2008, 23:28:12
ได้ความรู้เยอะเลยครับ

ปกติ เคยเล่นแต่ file_get_contents ครับ


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: manteeen ที่ 15 สิงหาคม 2008, 04:06:05
ดีครับ ได้ความรู้มากเลย  :-*


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: etgsgroup ที่ 15 สิงหาคม 2008, 05:46:09
ขอบคุณครับเมื่อใช้อย่างเดียว ไม่รู้เลย ว่าอะไรเป็นอะไร  :-* :-* :-* ได้ตาสว่างขึ้นตั้งเยอะ  ;D ;D ;D


หัวข้อ: Re: [PHP]สคริปที่ดึงข้อมูลเว็บ
เริ่มหัวข้อโดย: EThaiZone ที่ 15 สิงหาคม 2008, 11:32:45
ผมเคยเขียนตัวอย่างไว้ในกระทู้นะ
http://www.thaiseoboard.com/index.php/topic,33933.msg450473.html#msg450473

ลองไปดูได้ ใช้ได้จริง  :P