Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import urllib, urllib2, cookielib, sys, re, copy, os, urlparse
- from BeautifulSoup import BeautifulSoup
- cj = cookielib.CookieJar()
- opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
- opener.addheaders.append(('User-agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.'))
- imggetter = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
- imggetter.addheaders = [("User-agent",'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.'),
- ("Connection","keep-alive"),
- ('Accept','application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'),
- ('Accept-Encoding','gzip,deflate,sdch')]
- login_data = None
- def ShowFrog(saystuff):
- print "-------------------------"
- print " "
- print " +++++ "
- print " +++++7 MM "+str(saystuff[0:30])
- print " ++++++ ++++++7 "+str(saystuff[30:60])
- print " +++++7MM ++++++++++++++++++ "+str(saystuff[60:90])
- print " +++++7 +77+++++++++++M+++++ /"+str(saystuff[90:120])
- print "77++++77777+++++++++++MM++++++++++ "+str(saystuff[120:150])
- print "77++++++++++++++++++++++++++??????? "
- print "77++++++++++++++?????????~~~~~~~~~~~ "
- print "7+++++++++++???~~~~~~~~~~~~~~~~~~~~~ "
- print "7+++++++++???~~~~~~~~~~~~~~~~~~~~~~~~ "
- print "77+++++??~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "
- print "77++???~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "
- print "777+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~++ "
- print "7777~~~~~~~~~~~~~~~~~~~~~~~~~~~~+777 "
- print "7777777~~~~~~~~~~~~~~~~~~+++++++++++++"
- print "7777777777777777++++++++++++++++++++++"
- def ShowHammered():
- print " ............................... "
- print " ............................... "
- print " ............... .............. "
- print " . ................=IIII7=.............. HAVE A NICE "
- print " ........=7MMMMND$+:,:,,IDNMM$+. ..,... DAY "
- print " . .,8MMMM7+,,:::::::::::,,:ZNMM:..... / "
- print " .......,.8NNZ.,:,::::::::::::::,~,~,,:,,=M7.,........ "
- print " ..,.,..~M8=,,~::::::::,::,,:~,::,,,:::::,:Z=......... "
- print " ....,.M8,:,:::,:,:::::,::,,:,,,N~II,,:~::::OM,....... "
- print " .. ...,NM,,,:::,::,::,:::::::::::,:8DNZ::,::~::I+. ...., . ... . "
- print " ....O$,:::::::::::,::::,,:::::::::,$=:+O=,:,:,...ZMNM?=.. . . . "
- print " . .M8:,::::::,$DNDO7?+=::~~:::~~::O~~~IZMN$ZONMZ,..... .,8: ,.. "
- print " . .,IZ,,,:::::,::::$I$ZOO$Z8MMMMMMN8~,~7::.Z7NZ.,....... . =N. . "
- print "........MD,:,::,N:~:,MN..............+D+~I:+:$:~:M+............,...$.N~N~.,...."
- print ".......,N~::,,::,M+:=D.:.........,.=..:==:77+~??I7............,I,..D.8,,O~,...."
- print "..... .N~,~,,,:::+M.8?............7O:.,D::~+~,:+D?............MM+..77::,M+....."
- print ".......M:,::,:::,,DI?N.................Z=7++:+??MM~..............,:87,:,M=....."
- print "......~Z::::::::,=N:,+NM=..,.........NZ=~:I:=:I~NMMD~..,.........M7,,::~I......"
- print "......O~,::,::::=M8,:,,?MMMNDD8DDDMMO78D:I:~~$:~:MMOM8~,..,:~?8NO,,=:~,M......."
- print ". ...MM,::,+MMM8+,7MN?::::,,~++$N8Z$$O=:Z+=:7==,7~IDDODMOZ~,,:~:::,+OM7. . . "
- print ".....MD,::,:,,,,~,:,IMMZ,,,,:~?II??=?,~~~:==~~,:=:,I=~:=,,::,:,:7MMDDZ,.. "
- print ".....MN:::::~:,,~,,,:,~NMN$+,,:,~+?~,?I?,~~::~~~~~::~~:,,,:+8MMM$....:M.... "
- print ".....MM,:,::::::::::::::,,:+MMMNMZOI?~,,::,::,:,,,:?$MMMD$:..,DM.......Z , "
- print ".....NM.,::::::::::::::::::,MD..+7DMMNMMMDMMMMMMMMMO?,,+D,..,.?N8M$,,7N..,. "
- print "~+.,.=M$,,::::::::::,:::::,,:O$.:.~=I7.,.?=... .8MM:.:.IIDMZ:.MO...,... .... "
- print ",,,,~.ZM:::::::::::::::::::,,,DNNMN,.MM,$MMN,...$.IMD:=M,?,78O.........,.. "
- print "=:~I+,,M7,~:::::::::::::::::::,,:::,:,,,:::,7NO?::::,,,:O$... "
- print ".I,~.?:ZN$::::::::::::::::::::,::::::,,,:,~,~::,,~::~:,Z?.... "
- print ",,7.:,7:7MI:,::::::::::::::::::::::::::=MNNZ+:,:,:,7NMI,..... "
- print "=?,:~I,::ZMD:~::::::::::::::::::::::::::,,~+ZDNMM8D:,7....... "
- print ".,,+:.,~+,~N=:~:::::::::::::::::::::::::,,,::,,:,,~DM........ "
- print "??D887~~,,.+IM::,:::::::::::::::::::::::,:::::~::N8.......... "
- print "MOI+I$O8DDMM~:NM,,~::~::,:,::,:::::::,,,:::::,~ZM,.................... "
- print ",~~:::::::,,,~MD,MN:~,:,~,::::::::::::~:,,IOMM,..=7O88O:,,............. "
- print "::,::::::::~:~,,O+M.IMMN8$I=::::,,,,:=?NMM8+,=ND7,,,,,,=MN:,.,,,....... "
- print ":~:::::::~::,:::::ONO::,,,~+I7$$$OM77D7+I~,:,:::::::::::,,,,DN+,:...... "
- print "$ZZ$O,,.:,::::::,,,~Z,~,:::::::,:MI~O:~+,:::::::::::::::::,::,$N~...... "
- print "~~:?==,7Z,,::::::,::.M$,,::::::,N~=O+:,:::::::,,,,,,:::,:::::~$=,.... "
- print ",,:::,~,$M:,:,,:::::~:$~::::::,:N=.,,:,::::::::::::+II+,,,,:::,:,M~.... "
- print "~:+I=,~?N,$M:,::::::::::::::::,:N+,,:::::,:==~NO+.,.=,.?NI,:::::,OM.,.........."
- print ".I.,,?.D?..==,::::::::::::::::::?=,:::::::,8$$=:,,$~::?++M,,,::,,+M,,.........."
- print "+,,,?::M..,::::::::::::::::::~,,,:::::,:=M,~,.,I,,,7:,.$,,,:::,~M,,.........."
- print "=~,+=?$O,,,,:::::::::::::::::::::::::::::,DO=I~,=.+,:,+,,I:,,::::~N:,7,:,~....."
- print ",,,~,,N=,,::::::::::::::::::::::::::::::,:N+I.,,7:,+?:.?IM,~:::::$M:=,:.Z.:.,.."
- print "+,=?ION::~::::::::::::::::::::::::::::::,,N=,+,=::.=,~?M,,~::::,~M==?+,=,I.~:I."
- print ",7==,MM,::::,::::::::::::::::::::::::::::,M.:.??=~?8MDI,:,:::,,:N=,?.,.I=.+=+.+"
- print "8=7::+~,:::~::::::::::::::::::::::::::::::M8?I+=,,,::,::~:~::+MN=,+:+,=~,.,:,,:"
- print "IZ8$7ZDZ,,::::::::::::::::::::::::::::::,~O.,,::~::::::,::+OMM+:,7=~,7=+.I~?,=="
- print ",:::::::MD,,::::::::::::::::::::::::::::,~N,,:~:::,,,=7MMM.~.?~=.,=.,,I,:,I:,,+"
- print ",,:::,::~M:::,,:::,,:::::::::::::::::::::,N:,:,::?$MMN8:.,N?Z=:.$::,I=:,:+,,,?,"
- print ":,,,,:,,,I7,,,:,,,,,,,,,,,,,,,,,,,,,,,,:,,M:,,:ZMN$::::,::ZO:.:,~,,$,.,$::,I=,:"
- def YosThosePos( pageid = 3338398, pagestart=0, pageend=0 ):
- ShowFrog("Hello "+sys.argv[1]+", how are you? Let's pull some images shall we? Lets start at page "+str(pagestart)+"!")
- print '---------------------------------------------'
- print "Determining total pages..."
- # fetching the last page, so we know the extent
- pageurl = "http://forums.somethingawful.com/showthread.php?threadid={0}&userid=0&perpage=40&pagenumber={1}".format(pageid,pagestart)
- response = opener.open(pageurl,login_data)
- buffer = response.read()
- try:
- maxpages = int(buffer[buffer.find("Pages (")+7:buffer.find("): ")])
- except ValueError:
- ShowHammered()
- print "I couldn't determine the maximum amount of pages. Are you sure your params are correct?"
- exit(0)
- print "TOTAL PAGES: (" + str(maxpages) +")"
- del buffer
- del response
- del pageurl
- pageend = maxpages if (pageend > maxpages or pageend is None) else pageend
- pageend = int(pageend)
- pagestart = int(pagestart)
- outpath = os.path.join("/yosposbitch/")
- for i in range(pagestart, pageend):
- pageurl = "http://forums.somethingawful.com/showthread.php?threadid={0}&userid=0&perpage=40&pagenumber={1}".format(pageid, i)
- print '---------------------------------------------'
- print 'MOVING ONTO : ' + pageurl
- print '---------------------------------------------'
- response = opener.open(pageurl,login_data)
- buffer = response.read()
- buffer = buffer.replace('</<br>','<br />',-1)
- soup = BeautifulSoup(buffer)
- for image in soup.findAll('img'):
- try:
- imgvalue = image['src']
- if imgvalue.find("waffleimages") >= 0:
- imgvalue.replace('/t/','/',-1)
- try:
- if imgvalue.find("somethingawful") >= 0 or image['style']=="display:none;":
- continue
- except KeyError:
- pass
- print "Found an image: (" + imgvalue + "). Downloading..."
- if os.path.exists(imgvalue[imgvalue.rfind('/')+1:]):
- continue
- try:
- newfile = imggetter.open(imgvalue)
- except (ValueError, urllib2.HTTPError, urllib2.URLError):
- print 'Failed to know wtf is going on with: ' + imgvalue
- continue
- output = open(imgvalue[imgvalue.rfind('/')+1:],'wb')
- output.write(newfile.read())
- output.close()
- except KeyError:
- continue
- if __name__ == "__main__":
- try:
- urllib.urlencode({
- 'username':sys.argv[1],
- 'password':sys.argv[2]
- })
- pageid = sys.argv[3]
- pagestart = sys.argv[4] if len(sys.argv) >= 5 else 0
- pageend = sys.argv[5] if len(sys.argv) >= 6 else None
- except IndexError:
- print "You're so fucking stupid. Holy shit. usage:\npython yospos.py username password threadid [startpage [endpage]]"
- exit(0)
- YosThosePos(pageid, pagestart,pageend)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement