PyExperiments/Curl/follower.py
Andrea Bontempi d38c765b70 Init
2021-10-21 15:08:06 +02:00

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()