import os
import requests
import gevent
from gevent import monkey
from gevent.pool import Pool
monkey.patch_socket()
file = open('down_files.txt')
urls = file.readlines()
def download_files(url):
down_url = f'http://<your_base_download_uri>/{url}'
down_url = down_url.strip()
print(f'{down_url}')
res = requests.get(down_url)
open('files/'+os.path.basename(down_url), 'wb').write(res.content)
pool = Pool(10)
pool.map(download_files, urls)
# jobs = [gevent.spawn(download_files, url) for url in urls_run]
# gevent.joinall(jobs)
print('done')
import asyncio
import aiohttp
import os
import time
async def download_file(sem, url, session):
async with sem:
url = url.strip()
url = f'http://<your_base_download_uri>/{url}'
print(f'{url} {time.time()} ')
async with session.get(url) as response:
res = await response.read()
return url, res
# open('files/'+os.path.basename(url), 'wb').write(res)
# return url
def callback(future):
url, res = future.result()
open('pdf/'+os.path.basename(url), 'wb').write(res)
async def run():
file = open('down_files.txt')
urls = file.readlines()
futures = []
# create instance of Semaphore
sem = asyncio.Semaphore(5)
async with aiohttp.ClientSession() as session:
for url in urls:
task = asyncio.ensure_future(
download_file(sem, url, session))
task.add_done_callback(callback)
futures.append(task)
await asyncio.gather(*futures)
loop = asyncio.get_event_loop()
future = asyncio.ensure_future(run())
loop.run_until_complete(future)
from tornado import gen, web
from tornado.httpclient import AsyncHTTPClient
import requests
import os
import asyncio
def download_file(i, url):
url = url.strip()
url = f'http://esign-ws-com.oss-us-west-1.aliyuncs.com/{url}'
http_client = AsyncHTTPClient()
res = http_client.fetch(url)
res = requests.get(url)
content = res.content
with open('files/'+os.path.basename(url), 'wb') as file:
file.write(content)
return url
def main():
file = open('down_files.txt')
urls = file.readlines()
print(urls)
for i, url in enumerate(urls):
f = download_file(i, url)
print(i, f)
# loop = asyncio.get_event_loop()
# loop.run_until_complete(download_file(i, url))
# loop.close()
if __name__ == "__main__":
main()