如何才能识别并提取所有 CSS链接?

如何才能识别并提取所有 CSS链接?

方法 1:使用正则表达式

import re

css_url = """
body {
  background-image: url("image.jpg");
  background-image: linear-gradient(red, blue);
}
"""

links = re.findall(r"\s*\w+\s*:\s*(?:url|url\s*\(.*?\))", css_url, flags=re.IGNORECASE)

print(links)

方法 2:使用 Beautiful Soup

from bs4 import BeautifulSoup

html_doc = """

  

"""

soup = BeautifulSoup(html_doc, "html.parser")

css_links = [style.get("src") for style in soup.find_all("style")]

print(css_links)

方法 3:使用 PyQuery

import pyquery as pq

html_doc = """

  

"""

css_links = pq(html_doc).css("body > style::attr(src)")

print(css_links)

结果

['url("image.jpg")', 'url("image.jpg")']

注意

  • 使用正则表达式可能会有误差,因为 CSS 中的背景图像可能包含嵌套的链接。
  • 使用 Beautiful Soup 或 PyQuery 可能会更易于使用,但它们可能对 HTML 文档格式有所敏感。
相似内容
更多>