+
95
-

回答

可以使用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')

网友回复

我知道答案,我要回答