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 ก็ลบบรรทัดเปล่าทิ้ง



Create Date : 31 กรกฎาคม 2554
Last Update : 31 กรกฎาคม 2554 8:58:49 น.
Counter : 1011 Pageviews.

2 comments
  
มาเป็นหนึ่งในสาวก python เช่นกัน
โดย: อัสติสะ วันที่: 31 กรกฎาคม 2554 เวลา:12:24:55 น.
  
ขอบคุณยิ่งนัก
จะทำปุ่มกดยังไงครับเช่น ปุ่ม แฟ้ม พอกด
ก็เกิดหัวข้อให้เลือกเพิ่มอีก เป็น
เปิดแฟ้ม
โหลดแฟ้ม
เซฟแฟ้ม
ออก
อะไรๆประมาณนี้น่ะครับ
อยากทำโปรแกรมสร้างเอกสารด้วยการกดปุ่ม
โดย: hobbit2008 IP: 119.31.15.104 วันที่: 11 สิงหาคม 2554 เวลา:14:31:14 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

J-learning.BlogGang.com

wink99_th
Location :
พิษณุโลก  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 8 คน [?]

บทความทั้งหมด