mirror of
https://github.com/Andreabont/PyExperiments.git
synced 2024-09-19 14:43:05 +00:00
31 lines
848 B
Python
31 lines
848 B
Python
|
import pycurl
|
||
|
from io import BytesIO
|
||
|
import re
|
||
|
import sys
|
||
|
|
||
|
def get_redirect(url):
|
||
|
print("READ %s" % url)
|
||
|
buffer = BytesIO()
|
||
|
curl = pycurl.Curl()
|
||
|
curl.setopt(curl.URL, url)
|
||
|
curl.setopt(curl.WRITEDATA, buffer)
|
||
|
curl.perform()
|
||
|
redirect = curl.getinfo(pycurl.REDIRECT_URL)
|
||
|
if redirect is not None:
|
||
|
print(" ↳ [{1}] {0}".format(redirect, curl.getinfo(pycurl.HTTP_CODE)))
|
||
|
curl.close()
|
||
|
return redirect
|
||
|
body = buffer.getvalue().decode()
|
||
|
reg = re.compile(r"^.+window\.location\.href='(.+)'.+$", re.MULTILINE|re.DOTALL)
|
||
|
result = reg.findall(body)
|
||
|
if len(result) != 0:
|
||
|
print(" ↳ [JS] %s" % result[0])
|
||
|
curl.close()
|
||
|
return result[0]
|
||
|
curl.close()
|
||
|
|
||
|
redirect = sys.argv[1]
|
||
|
while redirect is not None:
|
||
|
redirect = get_redirect(redirect)
|
||
|
print()
|