home *** CD-ROM | disk | FTP | other *** search
-
- #name=webjump(path)
- #version=0.1
- #author=Wolfy
- #date=2000/11/22
- #comment=webjumpé╠URLé≡ò╧è╖é╡é─â_âEâôâìü[âh
- #func=OnRequest
- #category=download
- #param_comment=
-
- import sys,httplib,re,string,os.path,urlparse
- from gaogaolib import *
-
- #webjumpé╠âzâXâgû╝
- hosts = r'^http://.+\.' + \
- r'(webjump|jumpmovies|jumptunes|jumptravel|jumpsports|' + \
- r'jumpshopping|jumpreligion|jumprealestate|jumppolitics|' + \
- r'jumpoutdoors|jumphobbies|jumphealth|jumpgardens|' + \
- r'jumpgames|jumpfood|jumpfinance|jumpfamily|jumpeducation|' + \
- r'jumpfun|jumpcomputers|jumpcareers|jumpbusiness|jumpbooks|' + \
- r'jumpautos|jumpart)\.com'
-
- def OnRequest(url,headers,proxy,redirect,item,param):
- r'''HTTPâèâNâGâXâgé╠æOé╔î─é╬éΩé▄é╖üBò╘Ælé═ âtâëâOé╞ÉVé╡éóURLé╠â^âvâï'''
- #Redirecté╚éτé╬ÅIéΦ
- if redirect:
- return (IGNORE,url)
-
- #É│ïKò\î╗âRâôâpâCâï
- re_hosts = re.compile(hosts,re.IGNORECASE)
- if not re_hosts.search(url):
- #î⌐é┬é⌐éτé╚é⌐é┴é╜éτÅIéΦ
- return (IGNORE,url)
- else: #î⌐é┬é⌐é┴é╜éτGETé╖éΘ
- print r'''ÉVé╡éóURLé≡ÆTé╡é▄é╖'''
- #ò╧è╖îπé╠urlé╛é┴é╜éτî│é╔û▀é╖
- url = restore_webjump(url)
- #URLé≡ë≡É═
- url_info = parse_url(url)
- #host,port,pathé≡ô╛éΘ
- (host,port,path) = extract_url(url,proxy)
- #É┌æ▒
- http = httplib.HTTP(host,port)
- http.set_debuglevel(1)
- try:
- #âèâNâGâXâg
- http.putrequest('GET',path)
- #âwâbâ_é≡æùéΘ
- keys = headers.keys()
- for field in keys:
- #Range: é═û│Äïé╖éΘ
- if string.lower(field) == 'range':
- pass
- elif string.lower(field) == 'host':
- http.putheader('Host',url_info['host'])
- else:
- http.putheader(field,headers[field])
-
- #âèâNâGâXâgÅIéΦ
- http.endheaders()
- #âîâXâ|âôâX
- status_num,status,ret_headers = http.getreply()
- #ɼî≈é╚éτé╬
- if status_num == 200:
- #htmlô╟é▌ì₧é▌
- f = http.getfile()
- html = f.read()
- f.close()
- #pathé≡ÆTé╖
- m = re.search(r'http://.+' + url_info['path'],html,re.IGNORECASE)
- #pathé¬î⌐é┬é⌐éΩé╬
- if m:
- #ɼî≈ ÉVé╡éóURLé≡ò╘é╖
- ret_url = html[m.start(0):m.end(0)]
- print r'''ÉVé╡éóURLé╠ĵô╛é╔ɼî≈é╡é▄é╡é╜'''
- print ret_url
- #âwâbâ_é≡ò╧éªéΘ
- headers['Host'] = urlparse.urlparse(ret_url)[1]
- #ɼî≈
- return (SUCCESS,ret_url)
- else:
- #î⌐é┬é⌐éτé╚éóé╠é┼âGâëü[
- return (ERROR,url)
- else:
- #âGâëü[
- return (ERROR,url)
- finally: #ûYéΩé╕é╔
- http.close()
- #end OnRequest
-
-
-
-