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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingcURL ที่ใช้ดึงหน้าเว็บอะครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: cURL ที่ใช้ดึงหน้าเว็บอะครับ  (อ่าน 5993 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« เมื่อ: 04 กุมภาพันธ์ 2011, 00:45:21 »

ดึงหน้ามา แล้วก็ใช้ฟังชั่นอื่นตัดส่วนเอาใช่รึเปล่าครับ แล้วมันต่างจากใช้  file_get_contents ยังไงหรอครับ
บันทึกการเข้า
dragonmath
คนรักเสียว
*

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

กระทู้: 168



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 04 กุมภาพันธ์ 2011, 01:53:53 »

ด้านประสิทธิภาพ
ความเร็วในการดึงต่างกันครับ curl จะดึงได้เร็วกว่าๆ
ด้านการใช้งาน
การใช้ curl เราสามารถ post, put ละก็ get.แต่ file_get_contents ทำได้แค่ get เพียงอย่างเดียว.
« แก้ไขครั้งสุดท้าย: 04 กุมภาพันธ์ 2011, 01:56:09 โดย dragonmath » บันทึกการเข้า

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

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

กระทู้: 168



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 04 กุมภาพันธ์ 2011, 02:05:41 »

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/path/to/form ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'foo' => 'foo foo foo',
    'bar' => 'bar bar bar',
    'baz' => 'baz baz baz'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
ตัวอย่างการใช้งานๆ
บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #3 เมื่อ: 04 กุมภาพันธ์ 2011, 03:44:34 »

curl กับ file_get_contents ดึงได้เหมือนกันไม่ต่าง

แต่ curl จะเปนทางออกที่ดีเสมอเวลาที่ file_get_contents ไม่เวิร์ค

ส่วนเรื่องการดึงข้อมูลออกมาจาก ผลลัพท์ที่ได้จาก curl หรือ file_get_contents
ใช้ regular expression หรือไม่ก็พวก substr , strpos
บันทึกการเข้า

kongpair
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,721



ดูรายละเอียด
« ตอบ #4 เมื่อ: 04 กุมภาพันธ์ 2011, 05:55:57 »

file_get_contents  ได้ข้อมูลมาเป็น String  ใช้ Ram น้อยกว่า

Curl ได้มาเป็น Object ใช้ Ram มากกว่า


ในกรณีที่ข้อมูลเดียวกัน
« แก้ไขครั้งสุดท้าย: 04 กุมภาพันธ์ 2011, 05:56:37 โดย kongpair » บันทึกการเข้า
Twenty-One
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 11,762



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 04 กุมภาพันธ์ 2011, 07:10:39 »

ยืนยันตาม dragonmath ว่า cURL  ทำงานได้ดีกว่าครับ เร็วกว่า

 wanwan017
บันทึกการเข้า

# บริการโฮสติ้งขั้นเทพ 24/7 เปิดให้บริการ web hosting มาแล้ว 14 ปี ลูกค้ากว่า 40,000 ราย ให้ความไว้วางใจ
# hosting คุณภาพสูง ดูแลระบบโดย system engineer ประสบการณ์สูง
# host เร็ง แรง ไม่มีล่ม ติดตั้ง cms ฟรี
# vps ราคาถูก 50GB 999 บาท

ColdMoney
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,622



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 04 กุมภาพันธ์ 2011, 08:54:33 »

cURL เร็วกว่ามากครับ และทำ multi session ได้  wanwan019
บันทึกการเข้า

TG_Min
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,522



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 19 กรกฎาคม 2011, 09:58:35 »

ใช้คำสั่ง curl แล้วหน้ามันว่างๆ ทั้งๆ ที่ php ก็เปิดใช้งานคำสั่งนี้ หมายความว่ายังไงครับ ต้องแก้ยังไง

code ที่ใช้ก็เหมือนด้านบน ตัวอย่าง
โค๊ด:
<?php
$ch 
curl_init();
curl_setopt($chCURLOPT_URL"feed");
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_POSTFIELDS$data);
$output curl_exec($ch);
$info curl_getinfo($ch);
curl_close($ch);
echo 
$output;
?>


มันก็ได้กับ host อื่น แต่ host ตัวที่ใช้มันว่าง โล่ง ขาวสะอาดไม่ขึ้นไรเลย
บันทึกการเข้า

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

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

กระทู้: 139



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 19 กรกฎาคม 2011, 10:01:08 »

curl ได้เรื่องความเร็ว และทำ multi session
บันทึกการเข้า

แค่เธอผู้ไม่แพ้
4 Mine K
TG_Min
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,522



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 19 กรกฎาคม 2011, 11:04:47 »

ไม่มีใครทราบเลยแฮะ
บันทึกการเข้า

TG_Min
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,522



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 19 กรกฎาคม 2011, 11:48:35 »

ตอนนี้เจอปัญหาใหม่ เข้าใจว่าปัญหาเดิมคือมันไม่ยอมให้ดึง url จากภายนอก (เลยแสดงค่าว่างไว้) ยกเว้นภายใน domain มันเอง
ลองใส่ url ใน domain มันเองก็ดึงได้ แต่ใส่ url ภายนอกมันไม่ทำงาน ต้องแก้ยังไงดีครับ

เซ็งกะ host นี้จริงๆ
บันทึกการเข้า

vii
Verified Seller
สมุนแก๊งเสียว
*

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

กระทู้: 986



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 19 กรกฎาคม 2011, 14:22:10 »

ตอนนี้เจอปัญหาใหม่ เข้าใจว่าปัญหาเดิมคือมันไม่ยอมให้ดึง url จากภายนอก (เลยแสดงค่าว่างไว้) ยกเว้นภายใน domain มันเอง
ลองใส่ url ใน domain มันเองก็ดึงได้ แต่ใส่ url ภายนอกมันไม่ทำงาน ต้องแก้ยังไงดีครับ

เซ็งกะ host นี้จริงๆ
host block ไว้รึเปล่าครับ ลองดึงจาก google.com ดู ปกติจะต้องดึงได้
ถ้าดึงจาก url ตัวเองได้แต่ url คนอื่นไม่ได้ก็โดนบล็อกแล้วครับ ที่ host นะ
บันทึกการเข้า

TG_Min
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,522



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 19 กรกฎาคม 2011, 14:28:18 »

โดนล๊อคจริงๆ อ่ะครับ ทดลองกับหลายๆ คำสั่งแล้ว
ในตัวเองได้ แต่ดึงจาก url นอกไม่ได้เลย

ให้ admin แก้ไขแล้วเค้าบอกกำลังติดต่อกับ admin ต่างประเทศ
ก็รอต่อไป เฮ่อ ขอบคุณมากมายครับทุกท่าน
บันทึกการเข้า

loveme2
ก๊วนเสียว
*

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

กระทู้: 203



ดูรายละเอียด
« ตอบ #13 เมื่อ: 19 กรกฎาคม 2011, 14:32:33 »

ความรู้ใหม่ๆเก็บครับผม
บันทึกการเข้า
bananaoxy
Verified Seller
ก๊วนเสียว
*

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

กระทู้: 352



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 19 กรกฎาคม 2011, 16:54:31 »

curl ใช้กับ proxy ได้ด้วยนะเออ...
บันทึกการเข้า

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

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

กระทู้: 134



ดูรายละเอียด
« ตอบ #15 เมื่อ: 20 กรกฎาคม 2011, 21:30:11 »

ตามความเข้าใจของผมนะ

file_get_content ก็เหมือนอ่านไฟล์ที่อยู่ที่ไหนก็ได้ เครื่องเดียวกันหรือเครื่องอื่นก็ได้

cURL จำลอง browser มาเลย
บันทึกการเข้า
flash
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,022



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 21 กรกฎาคม 2011, 16:31:51 »

ที่เคยลองใช้ curl จะกิน CPU 100% เป็นช่วงๆ  ครับ  ไม่รู้จะแก้ยังไงดี
บันทึกการเข้า

ครีมหมอจุฬา ผ่าน อย. อยากหน้าใส ไร้รอยด่างดำ ครีมหมอจุฬาซื้อที่ไหน หาไม่ยากเลย แต่ระวังของปลอมนะ ของเราเป็น ครีมหมอจุฬาของแท้ 100% มาดูสินค้าก่อนได้

Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 22 กรกฎาคม 2011, 16:33:04 »

ลองหันมาดู YQL บ้างมั้ยครับ ทำ Selector แบบไม่เปลือง SERVER เราเอง อาทิเช่นผมต้องการดึงเว็บ ก็

โค๊ด:
select * from html where url="http://www.jquerytips.com" and xpath='//div[@id="container"]'

ซึ่งก็คือ

โค๊ด:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.jquerytips.com%22%20&diagnostics=true

ถ้าผมต้องการเขียน Regular ก็
โค๊ด:
select * from regex where expression = "(.*)" and text = "The quick brown fox leaps over the lazy dog";

ต้องการโพสต์ฟอร์ม
โค๊ด:
select * from htmlpost where
url='http://isithackday.com/hacks/htmlpost/index.php'
and postdata="foo=foo&bar=bar" and xpath="//p"

ใช้  CSS Selector
โค๊ด:
select * from data.html.cssselect where url="www.jquerytips.com" and css=".widget_entries"

นอกจากนี้ยังทำอะไรได้อีกหลายร้อยแบบ อาทิเช่น ต่อ Social Network API, ดึง Multi Feed 

แล้วก็นอกจาก Return เป็น  XML ยังสามารถ Return  เป็น JSON ได้อีกด้วย

แล้วก็ Rate Limit สูงมาก 100,000/day 1000/ip/day  ต่อ access key (จริงๆ แล้วขอมากี่ key ก็ได้ ให้เยอะตาม สไตล์ API Yahoo ครับ)

ลองเล่นดูเองก็ได้ครับ
http://developer.yahoo.com/yql/console/
บันทึกการเข้า

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