【问题标题】:From HTML to CSS style with Python使用 Python 从 HTML 到 CSS 样式
【发布时间】:2011-10-03 11:44:00
【问题描述】:

我使用 beautifulsoup 从 HTML 页面中提取了某些元素,并希望通过 python 提取相应的 CSS 样式(大多数情况下位于外部 css 文件中)。

如果我有一个 HTML 元素,我如何获得一个 jQuery 选择器?如果我有这个选择器,我可以使用 cssutils 来解析 CSS 并获取它。

TIA 寻求帮助。

【问题讨论】:

  • jQuery 跟它有什么关系?
  • 您可以通过这些选择器定位由 cssutils 解析的 CSS 内容。

标签: python css beautifulsoup


【解决方案1】:

你可以看看PyQuery's API。它提供与 jQuery 类似的 css 选择器语法,并且比 beautifulsoup 快得多,因为它依赖 lxml 来完成解析工作。

import pyquery.PyQuery as pq # you can treat it as a css selector

html = '<div class="foo"><a href="somewhere"></a></div>'
parsed = pq(html) # PyQuery object, is a callable

pq_list = parsed('.foo a') # doing css selection
for node in pq_list: # node here is a lxml element object
    print node.attrib['href'] # => somewhere

【讨论】:

  • 感谢您的回复。我尝试了 pyquery,但它没有解决我的问题:我需要从 HTML 元素生成选择器来查询 CSS 文件。你有办法做到这一点吗?
  • @Josh 也许您可以通过迭代调用 node.getparent() 并检索每个节点的标记名、ID 和类名来手动完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 2013-06-26
  • 2021-01-11
  • 2013-08-04
  • 2019-08-08
相关资源
最近更新 更多