Skip to content

Instantly share code, notes, and snippets.

View Rotzke's full-sized avatar
🇩🇪

Nils Bergmüller Rotzke

🇩🇪
  • Berlin, Germany
  • 07:02 (UTC +01:00)
View GitHub Profile
@Rotzke
Rotzke / asyncio.py
Last active October 1, 2023 02:25
Asyncio with semaphores
import random
import asyncio
from aiohttp import ClientSession
async def fetch(url, session):
async with session.get(url) as response:
delay = response.headers.get("DELAY")
date = response.headers.get("DATE")
print("{}:{} with delay {}".format(date, response.url, delay))
return await response.read()
@Rotzke
Rotzke / multiprocessing.py
Created February 11, 2018 22:23
Multiprocessing example
import urllib2
import csv
from bs4 import BeautifulSoup
from multiprocessing.dummy import Pool # This is a thread-based Pool
from multiprocessing import cpu_count
def crawlToCSV(URLrecord):
OpenSomeSiteURL = urllib2.urlopen(URLrecord)
Soup_SomeSite = BeautifulSoup(OpenSomeSiteURL, "lxml")
OpenSomeSiteURL.close()
@Rotzke
Rotzke / requests_pil.py
Last active February 11, 2018 22:25
Requests images downloader
import requests
from PIL import Image
from io import BytesIO
filename = 'image.jpg'
r = requests.get('https://example.com/image.jpg')
i = Image.open(BytesIO(r.content))
i.save(filename)
@Rotzke
Rotzke / logging.py
Last active September 26, 2021 20:40
Logging module config
# stdout
logging.basicConfig(format='[%(asctime)s] %(levelname)s: %(message)s',
level=logging.INFO, datefmt='%Y/%m/%dT%H:%M:%S')
# file
logging.basicConfig(filename="log",
filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)