@shellex说: 额....

Python+GTK校内相册下载工具。

仅仅是批量下载很容易的,这种东西嘛,要不要GUI都无所谓的。但是大家知道有很多MM是用WIndows的,而用WIndows的MM是不会用终端的,所以要我写一下GUI也无所谓。

但是由于大菠萝的缘故,我今天…卡卡,才把GUI写了。给…

但是问题就在这里,那就是,我折腾了一个小时也没成功把py2exe做的包运行起来。所以我没有做Windows的安装包咯…真是晕。哪位同学帮我做一下,感激不尽。

如果您使用Windows或者Mac,而且想用这个工具,在某人做出安装包前,请自行安装python和GTK和pyGTK。

如果您使用Linux就自己折腾吧。

源码下载: http://www.box.net/shared/ufsbulheb0

下面分别是Linux下和WIndows下的截图:
这是Linux下的:

screenshot-3

这是Windows下的:
screenshot

下面是代码。但是你可能还是需要去上面下载glade文件。

#!/usr/bin/python
# -*- coding: utf-8 -*-
# by shellex [www.sxnsx.com]
import re
import os
import sys
import gtk
import gtk.glade
import cookielib
import urllib, urllib2
import threading

class xn_photo_downloader(threading.Thread):
	def __init__(self):
		threading.Thread.__init__(self, name='downloader')
		self.cookies = cookielib.CookieJar()
		self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookies))
		self.save_path = '/home/shellex/Desktop/xnphotosd/d'
		self.target_url = ''
		self.usr = ''
		self.pwd = ''
		self.page_cnt = 0
		self.pbar = None

	def verify(self):
		verify_url = 'http://login.xiaonei.com/Login.do'
		verify_data= urllib.urlencode(
			{'email':self.usr,
			 'password': self.pwd,
			 'origURL':'http://www.xiaonei.com/SysHome.do'
			 })
		self.opener.open(verify_url, verify_data)
		print '[!]verify finish.'

	def go(self, target):
		rep = self.opener.open(target)
		return rep.read()

	def enmu_page_url(self):
		reg1 = '
[\s\S]*

完了。忘记说了,本Code以GPLv2协议发放。

  1. On August 18, 2008 at 1:27 pm
    vvoody :

    嘿嘿,100行啊。

    你小子做这个动机不纯啊,哈哈。

    Notify
  2. On August 18, 2008 at 3:35 pm

    [quote comment="363"]嘿嘿,100行啊。

    你小子做这个动机不纯啊,哈哈。[/quote]
    哪有哦,我纯洁得很呢。

    Notify
  3. On August 24, 2008 at 12:09 am
    山猫 :

    猫猫啊,未必一定 py2exe,
    不然你每个程序都带一套独立的 python + gtk, 你服务的 mm 的电脑要爆掉啦~

    反正这种程序都是要有网络才能用的,
    不如做个包装,
    运行时检查是否有 python、pyGtk,
    没有就自动下载自动无提示安装 pyGtk 到系统

    Notify
  4. On August 24, 2008 at 11:27 pm
    shellex :

    [quote comment="377"]猫猫啊,未必一定 py2exe,
    不然你每个程序都带一套独立的 python + gtk, 你服务的 mm 的电脑要爆掉啦~

    反正这种程序都是要有网络才能用的,
    不如做个包装,
    运行时检查是否有 python、pyGtk,
    没有就自动下载自动无提示安装 pyGtk 到系统[/quote]

    还得再写个Win32程序, 麻烦. 我用Fx插件搞定咯…

    Notify
  5. On August 25, 2008 at 8:01 pm
    白痴一个 :

    我想改成pyqt的……
    郁闷了……想用QT4+C++做……可怎么也不会……

    Notify
  6. On August 26, 2008 at 11:14 am

    [quote comment="380"]我想改成pyqt的……
    郁闷了……想用QT4+C++做……可怎么也不会……[/quote]
    代码都在…应该很容易吧..

    Notify
  7. On September 1, 2008 at 1:48 pm
    白痴一个 :

    pyqt4的改完了……打好包了……好大……10M…………

    给人用去了……

    C++的还是搞不定…………

    Notify
  8. On September 1, 2008 at 3:47 pm

    [quote comment="394"]pyqt4的改完了……打好包了……好大……10M…………

    给人用去了……

    C++的还是搞不定…………[/quote]

    看看上面山猫的留言吧。

    Notify
  9. On September 2, 2008 at 9:46 am
    白痴一个 :

    看了……
    但 有多少人会为一个软件而去装python和GUI的环境呢?

    Notify
  10. On September 2, 2008 at 12:44 pm
    山猫 :

    楼上的,是第一次点击运行后,自动下载,自动安装,
    对用户只提示是“正在系统更新/安全升级/优化你的系统/调优你的计算机”之类,
    不主动告诉他们是在安装 PyGtk。

    Notify
  11. On September 4, 2008 at 10:25 am
    白痴一个 :

    加一块20多M……还什么都不告诉用户……

    微软还提示装.net

    不能连微软都不如啊……

    用户有权知道干什么了……这太不负责任了吧…………

    Notify
  12. On September 4, 2008 at 11:05 am
    山猫 :

    用户是傻瓜,
    你不能告诉他额外的东西。

    看现在的 google chrome_installer.exe
    安装也是不用问任何多余问题的。

    Notify
  13. On September 4, 2008 at 11:08 am
    山猫 :

    那些多余的东西,你问了用户又怎么样,有哪个傻瓜会真的去看么,
    还不是下意识使劲点击[下一步]、[确定]。
    少一问方便一步。

    亏某些人还说 win 下某些 XX 软件安装多方便,连续按回车就装好了,
    也不想想这几十个回车有什么意义

    Notify
  14. On September 4, 2008 at 11:09 am
    山猫 :

    对了, PyGtk 20M 是解压缩后的,
    7z 压缩就只有几M 了,
    用 7z 做自解压程序很简单的

    Notify
  15. On September 6, 2008 at 11:00 am
    shellex :

    嗯,就是这样子。

    Notify
  16. On March 22, 2009 at 8:42 am
    Hooopo :

    @白痴一个, 应该提示的吧,就像AIR运行的时候一样吧?如果没有安装会提示下载。。

    Notify
  17. On May 25, 2009 at 9:23 pm
    amoblin :

    能像dropbox那样上传相片到校内相册吗?

    Notify
  18. On May 26, 2009 at 9:00 am

    @amoblin,
    dropbox还能上传到校内? 。。。。
    不能。只从校内提供了批量上传我就取消了这个功能

    Notify
  19. On May 26, 2009 at 12:47 pm
    amoblin :

    @shellex, 我不是说dropbox上传到校内。我是说能不能监视一个相片文件夹,然后上传此文件夹下的相片到校内?
    “只从校内提供了批量上传我就取消了这个功能”是什么意思呢?

    Notify
  20. On May 26, 2009 at 4:01 pm

    @amoblin,
    哦。是这个意思哈。
    当然可以。用inotify监视文件系统事件就可以了。当然啦,我这个很简单,木有这个功能。

    >>至于这个 ““只从校内提供了批量上传我就取消了这个功能”是什么意思呢?”
    貌似是我穿越了…我错了。

    Notify

Leave a Reply