可以使用request库来进行访问获取icon图片,完整代码如下:
#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import requests
from bs4 import BeautifulSoup
import os
def get_favicon(url):
# 确保URL以http或https开头
if not url.startswith('http://') and not url.startswith('https://'):
url = 'http://' + url
# 获取网页内容
response = requests.get(url)
response.raise_for_status()
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 查找favicon的链接
favicon_link = soup.find("link", rel="icon") or soup.find("link", rel="shortcut icon")
if favicon_link:
favicon_url = favicon_link.get('href')
# 如果favicon的URL是相对路径,将其转换为绝对路径
if not favicon_url.startswith('http'):
favicon_url = os.path.join(url, favicon_url)
else:
# 如果没有找到favicon链接,尝试默认的favicon路径
favicon_url = os.path.join(url, 'favicon.ico')
# 下载favicon
favicon_response = requests.get(favicon_url)
favicon_response.raise_for_status()
# 保存favicon
with open('favicon.ico', 'wb') as f:
f.write(favicon_response.content)
print(f"Favicon saved as 'favicon.ico'")
# 示例使用
get_favicon('baidu.com') 网友回复


