หัวข้อ: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: xmen256k ที่ 07 ธันวาคม 2008, 01:54:21 จากกระทู้
file_get_contents ออกมาแล้วเราจะสามารถหาข้อความที่เราต้องการหายังไงดีครับ http://www.thaiseoboard.com/index.php?topic=37596.0 อ้างถึง จาที่อ่านๆดูเห็นบอกว่า curl_init() จะเร็วกว่าใช่ป่าวครับ แล้วจะอกมาเป็น html ที่นี้ผมอยากหา ส่วนส่วนนึงของเวปที่ ผม get มาอะครับ อย่าง $url = $websiteown; $url = file_get_contents($url); echo $url; $url = $websiteown; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); echo $response; สมมุติว่า ใน html มี . . . <div id="content"> <img src="http://..........jpg"> </div> . . . ผมต้องการข้อมูลที่อยู่หลัง <div id="content"> และ ก่อน </div> เท่านั้นครับ ต้องเขียนยังไงครับผม ขอบพระคุณครับ ไม่ทราบว่า ถ้าจะใช้ fsockopen แทน จะต้องใช้สคริปแบบไหนอ่าครับ ขอบคุณมากครับ หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: EThaiZone ที่ 07 ธันวาคม 2008, 02:01:31 หาดูตัวอย่างจากนี้ดูครับ http://th.php.net/fsockopen
ก็แค่รับค่าจาก fgets หรือ fread :P หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: xmen256k ที่ 07 ธันวาคม 2008, 02:21:16 หาดูตัวอย่างจากนี้ดูครับ [url]http://th.php.net/fsockopen[/url] ก็แค่รับค่าจาก fgets หรือ fread :P เอ่อ คือถ้าไม่เป็นการรบกวนขอช่วยโค๊ดไฟล์ตัวอย่างสักหน่อยได้มั๊ยอ่าครับ ลักษณะการทำงานเหมือน จขกท.เลยครับ ปล.อังกฤษก็ไม่ค่อยจะรู้เรื่องกับเค้าเท่าไหร่อ่าครับ php ก็อยู่ในช่วงเริ่มต้นเท่านั้นอ่าครับ ขอบคุณครับ หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: EThaiZone ที่ 07 ธันวาคม 2008, 02:37:12 โค๊ด: $url = "http://www.thaiseoboard.com/index.php/topic,45350.0.html"; หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: xmen256k ที่ 07 ธันวาคม 2008, 02:50:43 ขอบคุณมากครับ พอจะได้แนวทางหละครับ ^^ +1ให้เลย
หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Tee++; ที่ 08 ธันวาคม 2008, 00:30:45 การทำแบบนี้มี Class httpClient เยอะเลยครับ ที่ผมเห็นที่ดีที่สุด คือตัวที่ plug อยู่ใน Libraries ของ Zend Framework (http://framework.zend.com/manual/en/zend.http.html)
แต่ว่ามันมีวิธีการลงที่ค่นข้างวุ่นวายในส่วนของ การ include path ผมเลยเอาตัวนี้มาแก้ขัดให้แทน httpClient http://www.phpclasses.org/browse/package/576.html หรือถ้าจะเอ าแบบ cURL ก็มีให้เลือก http://www.phpclasses.org/browse/package/1988.html http://www.phpclasses.org/browse/package/3547.html หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: xmen256k ที่ 08 ธันวาคม 2008, 02:36:03 การทำแบบนี้มี Class httpClient เยอะเลยครับ ที่ผมเห็นที่ดีที่สุด คือตัวที่ plug อยู่ใน Libraries ของ Zend Framework ([url]http://framework.zend.com/manual/en/zend.http.html[/url]) แต่ว่ามันมีวิธีการลงที่ค่นข้างวุ่นวายในส่วนของ การ include path ผมเลยเอาตัวนี้มาแก้ขัดให้แทน httpClient [url]http://www.phpclasses.org/browse/package/576.html[/url] หรือถ้าจะเอ าแบบ cURL ก็มีให้เลือก [url]http://www.phpclasses.org/browse/package/1988.html[/url] [url]http://www.phpclasses.org/browse/package/3547.html[/url] เอ่อ งงได้ใจเลยผม ??? ??? หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: EThaiZone ที่ 08 ธันวาคม 2008, 02:41:44 ู^
^ ถ้าจะใช้พวก libraly ที่เขียนในรูป class แนะนำให้ศึกษาเรื่องการเขียนในรูป OOP ก่อนนะครับ จะได้ไม่งง :) หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: xmen256k ที่ 08 ธันวาคม 2008, 02:48:37 โอ้ว เทพทั้งน้าน
ผมก็คงพื้นฐานต่อไป แหะๆ หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Amnaj ที่ 11 ธันวาคม 2008, 15:52:09 แล้วการใช้ fsockopen นี่ มันสามารถส่งค่าผ่านตัวแปลเหมือน curl ได้ป่ะ
แล้วโปรแกรม sniffer ที่ใช้ดู header อ่ะงับ ใครมีมั่งขอหน่อย หา ใน google ไม่พบใช้ คำค้น ไม่ตรงงับ หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Tee++; ที่ 11 ธันวาคม 2008, 16:04:29 ได้สิครับ ลองไปโหลด ตัว httpClient ด้านบนมาก่อน หรือไม่ก็ เอา Google หาคำว่า php snoopy
หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Amnaj ที่ 11 ธันวาคม 2008, 17:30:30 ได้สิครับ ลองไปโหลด ตัว httpClient ด้านบนมาก่อน หรือไม่ก็ เอา Google หาคำว่า php snoopy พอมีตัวอย่างง่ายให้ดูไหมงับ อย่างเช่นการล็อคอิน เคยใช้แต่ curl ง่ะ ไปโหลด php snoopy มาแล้ว แต่ เหอะ งง นิดหน่อย หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Tee++; ที่ 11 ธันวาคม 2008, 17:40:34 ^
^ ^ http://snippets.dzone.com/posts/show/2007 โค๊ด: <?php หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Amnaj ที่ 11 ธันวาคม 2008, 18:13:40 ^ ^ ^ [url]http://snippets.dzone.com/posts/show/2007[/url] โค๊ด: <?php ขอบคุณมากครับ เข้าใจมากแล้วครับ แต่ค่าเกี่ยวกับ cookies อ่ะงับ มันต้องใช้ตัวแปลจากในเว็บ หรือ เราสร้างขึ้นมาเก็บ แล้วค่า cookies หรือ Session มันถูกเก็บไว้ในงับ ประมาณว่าล็อคอิน แล้ว แต่ถ้าจะไปหน้าต่อไปก็ยังใช้ Session เดิม งับ (อยากลองในสิ่งที่ curl ทำไม่ได้ (อาจเพราะไม่เข้าใจมันเอง เหอะ)) แปลกใจทำไม curl , fsockopen ,php snoopy ทำไม ถึงใช้ Session เดี่ยวกับการเข้าหน้าเว็บปกติไม่ได้ หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Tee++; ที่ 11 ธันวาคม 2008, 18:28:21 ทำได้ครับ มันสามารถ Store Cookie ไว้กับตัวได้ โดยที่ cURL จะ Store ในไฟล์ ดูเรื่อง cookie jar
ส่วนพวก httpClient มักจะ store ใน Session ถ้าจะใช้ระดับนี้ผมว่าไปเอา ของ Zend มาใช้จะดีกว่า ส่วน session ของเวบ มันวิ่งได้ ปกติอยู่แล้วครับ เพราะเก็บ ที่ Server ไม่ใช่ Client ส่วนการ authenticate แบบ pop-up อันนี้ผมเคยลองแต่กับ cURL โดย set opt ตัวนี้ลงไปด้วย CURLOPT_UNRESTRICTED_AUTH ส่วนเรื่อง SSL ผมก็เคยลองแต่ของ cURL โดย set opt ตัวนี้ CURLOPT_SSL_VERIFYPEER ถ้าให้เลือกระหว่าง 2 ตัวนี้ ผมเลือกใช้งาน cURL ครับ เพราะเขียนโครตง่าย หัวข้อ: Re: ใช้ fsockopen ในการเก็บข้อมูลเว็บอย่างไรอ่าครับ เริ่มหัวข้อโดย: Amnaj ที่ 11 ธันวาคม 2008, 19:36:12 cURL ยอมรับว่าใช้ง่าย เข้าใจง่ายครับ แต่ก็ยังใช้กับเว็บบางที่ไม่ได้
ลองใช้ EffeTech HTTP Sniffer ตรวจสอบค่าตอนส่งแบบปกติ กับที่ใช้ cURL มันต่างกัน ตรง ความแตกต่างของ Cookie มันเกี่ยวกันไหมนี่ เพิ่มเติม สมมุติ เรา ใช้ เบราเซอร์ ล็อคอินเว็บ เราจะเอา Session มาใช้ใน cURL ได้ป่ะ ลองไปดู Session ในเครื่องกับที่ใช้ cURL มันคนละรูปแบบเลย |