在 Python 中解析 CSS

2024-03-07

我正在合并 100 个 HTML 页面,所有页面的头部都嵌入了样式元素。使用 BeautifulSoup 提取 style 的内容,但现在只剩下将字符串解析为字典 {selector_str:properties_str} 的任务。查看tinycss,它可以轻松地为我提供选择器“.c0”,但不是属性字符串“{...}”。

这是一个示例字符串

'.c0 { padding: 1px 0px 0px; font-size: 11px } .c1 { margin: 0px; font-size: 11px } .c2 { font-size: 11px } .c3 { font-size: 11px; font-style: italic; font-weight: bold } '

建议?欢迎使用正则表达式。这就是 CSS 的范围。每个页面上的类选择器 .c0 到 .c100(s) 都遵循相同的模式。


像这样的东西吗?

from collections import defaultdict

properties = defaultdict(str)

for item in example_str.split("}"):
    item_split = item.split("{")
    properties[item_split[0]] = "{" + item_split[1] + "}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中解析 CSS 的相关文章

随机推荐

  • 如何使用具有多个同名值的 RouteValues

    在我的 ASP NET MVC 4 应用程序中 我可以过滤多个标签 在 HTML 中 它看起来像这样
  • 没有名为“后端”的模块

    我正在做这个简单的 django 教程http www madewithtea com simple todo api with django and oauth2 html http www madewithtea com simple
  • 标签地址 (MSVC)

    我们正在为高级编译语言编写字节码 经过一些分析和优化后 很明显 当前最大的性能开销是我们用来跳转到字节码情况的 switch 语句 我们研究了提取每个 case 标签的地址并将其存储在字节码流本身中 而不是我们通常打开的指令 ID 如果这样
  • 在 eclipse 中运行 jms 示例时,资源注入不起作用。

    我想在 eclipse 中运行 jms 教程文件 我已正确配置 glassfish 并添加了 jms 资源 如果我在 netbeans 中运行它 它工作正常 我在 eclipse 中创建了一个 应用程序客户端项目 这是资源注入的地方 Res
  • AFNetworking (AFHttpClient) 离线模式不适用于 NSURLRequestReturnCacheDataDontLoad 策略

    我在我的应用程序中使用 AFNetworking 并尝试通过使用缓存数据 如果可用 使其在离线模式下工作 我预计在将请求缓存策略设置为 NSURLRequestReturnCacheDataDontLoad 后 getPath parame
  • Java线程生产者消费者算法无法正常工作

    我正在尝试学习线程 因此我编写了一个示例生产者消费者问题 其中生产者生成从 1 到 10 的数字 而消费者必须显示它们 但只有消费者显示数字 1 并停止 正如我所说 该程序写得不好 可能很荒谬 但我仍然想弄清楚为什么从 1 到 10 的所有
  • 有条件地调用 React hook

    从react官方文档我们知道 React 依赖于 Hook 的调用顺序 https reactjs org docs hooks rules html explanation 那么 如果我想有条件地调用它 那么为钩子 保留 一个位置有什么问
  • jQuery 对话框第二次未打开

    I found 这个线程 https stackoverflow com questions 366696 jquery dialog box这基本上和我有同样的问题 但他们的解决方案对我不起作用 我第一次单击提交按钮时会出现该对话框 但第
  • 如何让子菜单浮动在div上?

    大家好 我有一个带有下拉菜单的子菜单 但是当菜单下降时 它会将下面的 div 向下推 知道如何修复它以便它加载到 div 上吗 还有一个是水平的 一个是垂直的 如何解决这个问题 谢谢 JSFiddle http jsfiddle net p
  • 将 .obj 转换为 .h 时无法使用“已定义(@array)”警告

    我正在尝试将我的 obj 文件转换为 h 头文件 但我收到 Can t use define array 也许您应该忽略 Defined 警告 并且没有 h 文件已创建 我尝试过更换 center to center或省略defined 但
  • 如何摧毁Fancybox?

    我正试图摧毁Fancybox http fancyapps com fancybox 我还没有找到任何方法来做到这一点文档 http fancyapps com fancybox docs 初始化后如何销毁呢 这不起作用 a unbind
  • 即使PODS不受升级影响,“helm升级”是否会重新启动PODS?

    我的舵图有大约 12 个 PODS 当我这样做的时候helm upgrade更改某些值后 除一个 POD 外 所有 POD 都会重新启动 我的问题是 Will helm upgrade即使 PODS 不受升级影响 也要重新启动吗 换句话说
  • mLab 上的 MongoDB 身份验证失败

    按照此处的步骤创建了一个新的 mLab 帐户并创建了一个数据库http docs mlab com create sub http docs mlab com create sub 尝试使用 mongo shell 和 mongoose N
  • 在WPF中,当由于空引用而绑定失败时,是否使用FallbackValue?

    我的视图模型公开了一个名为的列表MyList可能为空或null 我有一个想要根据这种状态隐藏的元素 如果MyList为空或null 那么该元素应该折叠 如果它有元素 那么应该显示它 这是我的DataTrigger
  • 如何console.log Moment.js版本?

    有没有办法查出是什么版本Moment js正在被使用 Moment js http momentjs com 只需使用moment version 文档页面中似乎没有提到这个属性 但是查看库很容易得到它github上的代码 https gi
  • ASP.NET 中的BackgroundWorker 线程

    是否可以使用 BackGroundWorker 线程ASP NET http en wikipedia org wiki ASP NET2 0适合以下场景 让浏览器端的用户不用等待很长时间 Scenario 浏览器请求一个页面 例如 Sen
  • GitPython 列出受某个提交影响的所有文件

    我正在使用这个 for 循环来循环所有提交 repo Repo C Users shiro Desktop lucene solr for commit in list repo iter commits print commit file
  • Android:使用第三方应用程序打开私人文件

    我正在制作一个从互联网下载文件并允许用户使用第三方应用程序打开这些文件的应用程序 我使用以下命令将这些文件存储在我的私人应用程序目录中getFilesDir http developer android com reference andr
  • 使用Python3.x创建贝叶斯网络并学习参数[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为 Windows 上的 python3 x 寻找最合适的工具来创建贝叶斯网络 从数据中学习其参
  • 在 Python 中解析 CSS

    我正在合并 100 个 HTML 页面 所有页面的头部都嵌入了样式元素 使用 BeautifulSoup 提取 style 的内容 但现在只剩下将字符串解析为字典 selector str properties str 的任务 查看tiny