炫酷生日祝福网站源码分享?生日祝福网页制作一键生成

大家好,今天小编来为大家解答以下的问题,关于炫酷生日祝福网站源码分享,生日祝福网页制作一键生成这个很多人还不知道,现在让我们一起来看看吧!

编译:Python开发者-Jake_on英文:Quora

http://python.jobbole.com/85986/

有网友在Quora上提问,「你用Python写过最牛逼的程序/脚本是什么?」。本文摘编了3个国外程序员的多个小项目,含代码。

ManojMemanaJayakumar,3000+顶

更新:凭借这些脚本,我找到了工作!可看我在这个帖子中的回复,《HasanyonegotajobthroughQuora?OrsomehowmadelotsofmoneythroughQuora?》

1.电影/电视剧字幕一键下载器

我们经常会遇到这样的情景,就是打开字幕网站subscene或者opensubtitles,搜索电影或电视剧的名字,然后选择正确的抓取器,下载字幕文件,解压,剪切并粘贴到电影所在的文件夹,并且需把字幕文件重命名以匹配电影文件的名字。是不是觉得太无趣呢?对了,我之前写了一个脚本,用来下载正确的电影或电视剧字幕文件,并且存储到与电影文件所在位置。所有的操作步骤仅需一键就可以完成。懵逼了吗?

请看这个Youtube视频:https://youtu.be/Q5YWEqgw9X8

源代码存放在GitHub:subtitle-downloader更新:目前,该脚本支持多个字幕文件同时下载。步骤:按住Ctrl,选择你想要为其下载字幕的多个文件,最后执行脚本即可

2.IMDb查询/电子表格生成器

我是一个电影迷,喜欢看电影。我总是会为该看哪一部电影而困惑,因为我搜集了大量的电影。所以,我应该如何做才能消除这种困惑,选择一部今晚看的电影?没错,就是IMDb。我打开http://imdb.com,输入电影的名字,看排名,阅读和评论,找出一部值得看的电影。

但是,我有太多电影了。谁会想要在搜索框输入所有的电影的名字呢?我肯定不会这样做,尤其是我相信“如果某些东西是重复性的,那么它应该是可以自动化的”。因此,我写了一个python脚本,目的是为了使用非官方的IMDbAPI来获取数据。我选择一个电影文件(文件夹),点击右键,选择‘发送到’,然后点击IMDB.cmd(顺便提一下,IMDB.cmd这个文件就是我写的python脚本),就是这样。

我的浏览器会打开这部电影在IMDb网站上的准确页面。

仅仅只需点击一个按键,就可以完成如上操作。如果你不能够了解这个脚本到底有多酷,以及它可以为你节省多少时间,请看这个Youtube视频:https://youtu.be/JANNcimQGyk

从现在开始,你再也不需要打开你的浏览器,等待加载IMDb的页面,键入电影的名字。这个脚本会帮你完成所有的操作。跟往常一样,源代码放在了GitHub:imdb,并且附有操作说明。当然,由于这个脚本必须去掉文件或文件夹中的无意义的字符,比如“DVDRip,YIFY,BRrip”等,所以在运行脚本的时候会有一定比例的错误。但是经过测试,这个脚本在我几乎所有的电影文件上都运行的很好。

2014-04-01更新:

许多人在问我是否可以写一个脚本,可以发现一个文件夹中所有电影的详细信息,因为每一次只能发现一个电影的详细信息是非常麻烦的。我已经更新了这个脚本,支持处理整个文件夹。脚本会分析这个文件夹里的所有子文件夹,从IMDb上抓取所有电影的详细信息,然后打开一个电子表格,根据IMDb上的排名,从高到低降序排列所有的电影。这个表格中包含了(所有电影)在IMDbURL,年份,情节,分类,获奖信息,演员信息,以及其他的你可能在IMBb找到的信息。下面是脚本执行后,生成的表格范例:

YourveryownpersonalIMDbdatabase!Whatmorecanamoviebuffaskfor?;)

SourceonGitHub:imdb你也可以有一个个人IMDb数据库!一个电影爱好者还能够要求更多吗?:)源代码在GitHubimdb

3.theoatmeal.com连载漫画下载器

我个人超级喜欢MatthewInman的漫画。它们在疯狂搞笑的同时,却又发人深省。但是,我很厌烦重复点击下一个,然后才能阅读每一个漫画。另外,由于每一个漫画都由多福图片组成,所以手动下载这些漫画是非常困难的。

基于如上原因,我写了一个python脚本,用来从这个站点下载所有的漫画。这个脚本利用BeautifulSoup(http://www.crummy.com/software/B…)解析HTML数据,所以在运行脚本前,必须安装BeautifulSoup。用于下载燕麦片(马修.英曼的一部漫画作品)的下载器已经上传到GitHub:theoatmeal.com-downloader。(漫画)下载完后的文件夹是这样的:D

4.someecards.com下载器成功地从http://www.theoatmeal.com下载了整部漫画后,我在想是否我可以做同样的事情,从另一个我喜欢的站点—搞笑的,唯一的http://www.someecards.com.下载一些东西呢?

somececards的问题是,图片命名是完全随机的,所有图片的排放没有特定的顺序,并且一共有52个大的类别,每一个类别都有数以千计的图片。

我知道,如果我的脚本是多线程的话,那将是非常完美的,因为有大量的数据需要解析和下载,因此我给每一个类别中的每一页都分配一个线程。这个脚本会从网站的每一个单独的分类下载搞笑的电子贺卡,并且把每一个放到单独的文件夹。现在,我拥有这个星球上最好笑的电子贺卡私人收藏。下载完成后,我的文件夹是这样的:

没错,我的私人收藏总共包括:52个类别,5036个电子贺卡。源代码在这里:someecards.com-downloader编辑:很多人问我是否可以共享我下载的所有文件,(在这里,我要说)由于我的网络不太稳定,我没办法把我的收藏上传到网络硬盘,但是我已经上传一个种子文件,你们可以在这里下载:somecards.comSiteRiptorrent

种下种子,传播爱:)

AkshitKhurana,4400+顶

感谢500多个朋友在Facebook上为我送出的生日祝福

有三个故事让我的21岁生日变的难忘,这是最后一个故事。我倾向于在每一条祝福下亲自评论,但是使用python来做更好。

1…231.Amansposttime12136.AFTER=135323375414157.TOKEN=16178.18199.defget_posts:202110.”””Returnsdictionaryofid,firstnamesofpeoplewhopostedonmywall222311.betweenstartandendtime”””242512.query=(“SELECTpost_id,actor_id,messageFROMstreamWHERE”262713.”filter_key=othersANDsource_id=meAND”282914.”created_time>1353233754LIMIT200”)303115.323316.payload={q:query,access_token:TOKEN}343517.r=requests.get(https://graph.facebook.com/fql,params=payload)363718.result=json.loads(r.text)383919.returnresult[data]404120.424321.defcommentall(wallposts):444522.”””Commentsthankyouonallposts”””464723.choices=[Addaname]89importos1011current_directory=os.path.dirname(os.path.abspath(__file__))1213fromTkinterimportTk1415fromeasyguiimport*1617importnumpyasnp1819x=os.listdir(current_directory)2021new_x=2223testing=2425foriinx:2627ifi.find(.)==-1:2829new_x+=[i]3031else:3233testing+=[i]3435x=new_x3637g=x3839choices=[Addaname]+x4041y=range(1,len(x)+1)4243defget_images_and_labels:4445globalcurrent_directory,x,y,g4647ifx==:4849return(False,False)5051image_paths=5253foriing:5455path=current_directory++i5657forfilenameinos.listdir(path):5859final_path=path++filename6061image_paths+=[final_path]6263labelswillcontainsthelabelthatisassignedtotheimage6869labels=7071forimage_pathinimage_paths:7273Converttheimageformatintonumpyarray7879image=np.array(img,uint8)8081Iffaceisdetected,appendthefacetoimagesandthelabeltolabels9495images.append(image)9697labels.append(nbr)9899cv2.waitKey(50)102103Performthetranining108109deftrain_recognizer:110111recognizer=cv2.createLBPHFaceRecognizer112113images,labels=get_images_and_labels114115ifimages==False:116117returnFalse118119cv2.destroyAllWindows120121recognizer.train(images,np.array(labels))122123returnrecognizer124125defget_name(image_path,recognizer):126127globalx,choices128129recognizer=train_recognizer132133cascadePath=”haarcascade_frontalface_default.xml”134135faceCascade=cv2.CascadeClassifier(cascadePath)136137calculatewindowposition236237root=Tk238239pos=int(root.winfo_screenwidth*0.5),int(root.winfo_screenheight*0.2)240241root.withdraw242243WindowPosition=”+%d+%d”%pos244245246247detect_faces(imagePath)354355new(imagePath,recognizer)356357os.remove(filename)358359raw_input(Donewiththisphotograph)

我想进一步修改它的搜索功能,其中会包含更多的搜索类型,比如基于地理位置,微笑的脸,伤心的脸等等。(这样我就可以在Skylawns上搜索快乐的Tanmay&沮丧的Akshay&快乐的…)

我还写了很多脚本,但那都是很久之前的事情了,我也懒得再去检查这些代码了,我会列出部分代码。

GitHub链接:tanmay2893/Image-Sorting

Gmail邮件通知

在那段时间,我没有智能手机。导致我常常错过来自于我所在的研究所的邮件(在我的研究所的邮件ID),我写了一个脚本,可以在我的笔记本上运行,而且能给我的手机发信息。我使用python的IMAP库来获取邮件。我可以输入一些重要的人的名字,这样一来,当这些人给我发了邮件后,我可以收到短信通知。对于短信,我使用了way2sms.com(写了一个python脚本,自动登陆我的账户,然后发送短信)。

PNR(PassengerNameRecord旅客订座记录,下同)状态短讯

铁路方面不经常发送PNR状态消息。因此,我写了一个脚本,可以从印度铁路网站获取PNR状态。这是非常容易的,因为那个网站没有验证码,即使有,也只是形同虚设的验证码(在过去,一些字母会被写在看起来像图片一样的东西上面,因为他们为这些字母使用了一个“check”的背景图)。我们可以轻松地从HTML网页得到这些字母。我不明白他们这样做的目的是什么,难道仅仅是为了愚弄他们自己吗?不管怎么样,我使用短信息脚本来处理它,经过一段时间间隔,它会在我的笔记本上运行一次,就像是一个定时任务,只要PNR状态有更新,它就会把更新信息发送给我。

YouTube视频下载器

这个脚本会从Youtube页面下载所有的Youtube视频以及他们所有的字幕文件(从Downloadandsavesubtitles下载)。为了使下载速度更快一点,我使用了多线程。还有一个功能是,即使你的电脑重启了,仍然可以暂停和恢复播放下载的(视频)。我原本想做一个UI的,但是我太懒了…一旦我的下载任务完成,我就不去关心UI的事情了。

板球比分通知器

我猜想这个功能已经在别的地方提到过了。一个窗口通知器。(在右下角的通知区域,它会告诉你实时比分以及评论信息)。如果你愿意的化,在某些时间段,你也可以关掉它。

WhatsApp消息

这个并不太实用,我只是写着玩玩。因为Whatsapp有网页版,我使用selenium和Python下载我的所有联系人的显示图片,并且,一旦有人更新了他们的显示图片,我将会知道。(如何做到的?非常简单,在设定好时间间隔后,我会一遍又一遍的不停下载所有的头像信息,一旦照片的尺寸发生变化,我将会知道他/她更新了显示图片)。然后我会给他/她发一个信息,不错的头像。我仅仅使用了一次来测试它的可用性。

Nalanda下载器

我们一般在这个叫‘Nalanda’的网站上下载一些教学课件以及其他的课程资料,‘Nalanda’在BITSPilani(Nalanda).我自己懒得在考试前一天下载所有的课件,所以,我写了这个这个下载器,它可以把每一门科的课件下载到相应的文件夹。

代码:

1importmechanize,os,urllib2,urllib,requests,getpass,time23start_time=time.time45frombs4importBeautifulSoup67br=mechanize.Browser89br.open(https://nalanda.bits-pilani.ac.in/login/index.php)1011br.select_form(nr=0)12131415name=1617whilename==:1819try:2021print*******2223username=raw_input(EnterYourNalandaUsername:)2425password=getpass.getpass(Password:)2627br.form[username]=username2829br.form[password]=password3031res=br.submit3233response=res.read3435soup=BeautifulSoup(response)3637name=str(soup.find(div,attrs={class:logininfo}).a.string)[:-2]3839except:4041printWrongPassword4243f=open(details.txt,w)4445f.write(username+n+password)4647f.close4849printWelcome,+name5051printAllthefileswillbedownloadedinyourDriveCinafoldernamed”nalanda”5253printa8182overall=8384foriinrange(l):8586response=br.open(a[i][1])8788page=response.read8990soup=BeautifulSoup(page)9192li=soup.find_all(li,attrs={class:sectionmainclearfix})9394x=len(li)9596t=9798folder=a[i][0]99100printDownloading+folder+files…101102o=103104forjinrange(x):105106g=li[j].ul107108raw_input111112ifg!=None:113114temp=http://g.li[class].split115116printyes121122raw_input(Pressanybuttontoresume)211212#printoverall213214printTimeTakentoDownload:+str(time.time-start_time)+seconds215216printDoyouthinkyoucandownloadallfilesfasterthanthis:P217218printClosingin10seconds219220time.sleep(10)

我自己的DC++

这个脚本并不是很有用,目前只有一些学生在用它,况且,DC++已经提供了一些很酷的功能。我原本可以优化我自己的版本,但是,由于我们已经有了DC++,我并没有这么做,尽管我已经使用nodeJS和python写了一个基础版本。

工作原理:

打开DC++,进入一个中心站点,然后连接,我写了一个python脚本来做这件事。脚本会在PC上创建一个服务器(可以通过修改SimpleHTTPRequestHandler来完成)。

在服务器端(使用了NodeJS),它会拿到PC的连接,共享给其他的用户。

这个是主页面:

这个页面显示了所有的用户和他们的链接。因为我给Nick加了一个超链接,所以在链接这一拦是空的。

所以,当用户数量增加以后,这个页面会列出所有的用户列表。基本上,这个页面充当了一个你和另外一个人联系的中间人角色。我还做了一个在所有用户中搜索特定文件的功能。

这里是客户端的python文件(这是一段很长的代码,我上传到了Ideone)

所有这些代码仅仅用于教育目的。

「关键词」,获取优质资源

回复关键词「pybook03」,立即获取主页君与小伙伴一起翻译的《ThinkPython2e》电子版回复关键词「入门资料」,立即获取主页君整理的10本Python入门书的电子版回复关键词「m」,立即获取Python精选优质文章合集回复关键词「」,将数字替换成0及以上数字,有惊喜好礼哦~

题图:pexels,CC0授权。

好文章,我在看

好了,文章到此结束,希望可以帮助到大家。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平