|
|
|
import requests, random
|
|
|
|
|
|
|
|
# These are just some random useragents, you can replace these with a different list
|
|
|
|
user_agents = [
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36",
|
|
|
|
"Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0",
|
|
|
|
"Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0",
|
|
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1",
|
|
|
|
]
|
|
|
|
|
|
|
|
class NotFoundException(Exception):
|
|
|
|
pass
|
|
|
|
|
|
|
|
class ModifiedSession(requests.Session):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
requests.Session.__init__(self, *args, **kwargs)
|
|
|
|
self.headers['user-agent'] = random.choice(user_agents)
|
|
|
|
|
|
|
|
def download_file(request, target):
|
|
|
|
if request.status_code == 200:
|
|
|
|
f = open(target, "wb")
|
|
|
|
|
|
|
|
for chunk in request.iter_content():
|
|
|
|
f.write(chunk)
|
|
|
|
|
|
|
|
f.close()
|