Python: โหลดการ์ตูนจาก web ตอนที่ 3 ตอนนี้มีดูวิธีการอ่านค่า จำนวนหน้าจาก web กัน ถ้าสังเกตดีๆ จำนวนหน้าจะอยู่ที่บรรทัดประมาณ 131 และมีคำว่า " of" เป็นที่สังเกต ดังนั้นถ้าเราไปที่ page นั้นแล้วทำอ่านค่าไปที่ละบรรทัด ให้ตรวจสอบว่าพบ คำว่า " of" ก็เก็บมาใช้งาน ต่อจากนั้นก็ทำการตัดคำ จนได้ตัวเลข ออกมา ตาม code นี้เลย หรือ download sourcecode พร้อมไฟล์จำนวนหน้าที่นี้ import urllib #เรียกใช้ module เกี่ยวกับ web num = 1 #เป็นค่าเริ่มต้นสำหรับ chapter เพราะเรื่อง dragonball มี 520 chapter fpFileList01 = open('fileList01.txt','r') #สร้าง File Pointer ที่ชี้ไปยังไฟล์ที่เก็บข้อมูลชื่อ link url แต่ละ chapter ที่ได้เขียนโปรแกรมในตอนที่ 2 fpPageList01 = open('PageList01.txt','w') #สร้าง File pointer เก็บข้อมูลจำนวนหน้า โดยมีรูปแบบคือ เลขที่ chapter + เครื่องหมาย colon + จำนวนหน้าใน chapter นั้น for line in fpFileList01: fpNumPage = urllib.urlopen(line) for lineN in fpNumPage: if " of" in lineN: List2 = lineN.split(" ") List3 = List2[2].split("<") fpPageList01.write(str(num) + ':'+List3[0]+"n") print str(num) + ':'+List3[0] num = num+1 break #เป็น loop ที่อ่านค่าจากไฟล์ชือ่ 'fileList01.txt' ที่ละบรรทัดเพื่อนำไป urlopen page chapterที่ต้องการ ไล่จาก chapter ที่หนึ่งแล้วเก็บในตัวแปล fpNumPage #ต่อจากนั้นก็อ่านข้อมูลที่ละบรรทัดจากไฟล์ที่ fpNumPage ชี้อยู่ ถ้าพบข้อความ " of" ก็ทำการเก็บบรรทัดนั้นมาส่ะ #แล้วทำการเก็บข้อมูลจำนวนหน้าที่ตัวแปร List3[0] และจัดการ write ลงไฟล์ตาม Format ที่บอกไว้ข้างต้น #แล้วก็ break ออกจาก loop เพื่อไปวน loop ข้างบนเพื่ออ่าน chapter ที่สองต่อไป fpPageList01.close() fpFileList01.close() fp.close() #สุดท้ายก็ไล่ปิด file Pointer ตามระเบียบ ตอนนี้ก็ได้ข้อมูลครบแล้วคือ link chapter และจำนวนหน้า ครั้งหน้าก็จะเป็น นำข้อมูลทั้งหมดไปใส่เป็นแบบ GUI เพื่อง่ายต่อการใช้งาน ถ้าสังเกตจะเป็นว่ามี error ตอน run ก็เพราะว่าบรรทัดสุดท้ายเป็นบรรทัดเปล่า มันไปหา url ไม่เจอ ถ้าไม่ต้องการให้error ก็ลบบรรทัดเปล่าทิ้ง มาเป็นหนึ่งในสาวก python เช่นกัน
โดย: อัสติสะ วันที่: 31 กรกฎาคม 2554 เวลา:12:24:55 น.
ขอบคุณยิ่งนัก
จะทำปุ่มกดยังไงครับเช่น ปุ่ม แฟ้ม พอกด ก็เกิดหัวข้อให้เลือกเพิ่มอีก เป็น เปิดแฟ้ม โหลดแฟ้ม เซฟแฟ้ม ออก อะไรๆประมาณนี้น่ะครับ อยากทำโปรแกรมสร้างเอกสารด้วยการกดปุ่ม โดย: hobbit2008 IP: 119.31.15.104 วันที่: 11 สิงหาคม 2554 เวลา:14:31:14 น.
|
บทความทั้งหมด
|