-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrab_favicon.py
26 lines (22 loc) · 7.64 KB
/
grab_favicon.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import requests
import favicon
def favicon_url(domain, use_default=True):
default_icon = "data:image/png;base64,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"
if use_default:
return default_icon
try:
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
headers = {'User-Agent': user_agent}
icon = favicon.get(domain, headers=headers, timeout=2)[0]
return icon.url
except:
return
def download_favicon(domain):
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
headers = {'User-Agent': user_agent}
icon = favicon.get('https://www.python.org/', headers=headers, timeout=2)[0]
response = requests.get(icon.url, stream=True)
with open('favicon.{}'.format(icon.format), 'wb') as image:
for chunk in response.iter_content(1024):
image.write(chunk)
return True