[範例] 無名小站相簿 grabber

看板Python作者 (認真的艾瑞克)時間19年前 (2005/12/26 17:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/4 (看更多)
使用方法: *.py <帳號> <相簿編號> 目前的版本是搭配系統中的 wget 來抓 URL 如果大家有什麼建議改進的地方都可以提出來討論 ^^; 互相學習囉 #!/usr/bin/python import urllib2 import re import sys import os global addr addr = "http://www.wretch.cc/album" def get_pic(path): url = re.sub('&amp;', r'&', addr+path) r = urllib2.Request(url) r.add_header('Referer', addr) r.add_header('User-Agent', 'Mozilla 5.0') cont = urllib2.urlopen(r) c = cont.readlines() for line in c: if re.match('.*<img id=\'DisplayImage\'.*?></a>', line): mat = re.findall('(http.*?)\'', line) if mat: os.system('/usr/bin/wget --header=\'Referer: http://www.wretch.cc/album\' --header=\'User-Agent: Mozilla 5.0\' '+mat[0]) def grab(lines): flag = 0; for line in lines: if re.match(".*show.php.*", line): flag = flag +1 mat = re.findall('<a href=".(.*?)" ><.*?</a>', line) if mat: get_pic(mat[0]) if flag == 0: return True else: return False if __name__ == "__main__": user = sys.argv[1] book = sys.argv[2] url = addr+"/album.php?id="+user+"&book="+book i = 1 while True: url2 = url+"&page="+str(i) req = urllib2.Request(url2) req.add_header('Referer', addr) req.add_header('User-Agent', 'Mozilla 5.0') page = urllib2.urlopen(req) if (grab(page.readlines())): break; i = i + 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.31.143

12/26 17:42, , 1F
我覺得看別人的範例是學習最快的方法了:)
12/26 17:42, 1F
文章代碼(AID): #13hxKz3a (Python)
文章代碼(AID): #13hxKz3a (Python)