2011-07-12 34 views
-2

CSS样式我已经从一个beautifulsoup HTML页面中提取某些元素,并要提取根据CSS样式通过Python(驻留在大多数情况下,在外部CSS文件)。从HTML与Python的

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

TIA寻求帮助。

+0

jQuery与它有什么关系? –

+0

您可以通过这些选择器定位由cssutils解析的CSS内容。 –

回答

0

你可以看看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 
+0

感谢您的回复。我试过pyquery,但它不能解决我的问题: 我需要从HTML元素生成一个选择器来查询CSS文件。你有没有看到这样做的方式? –

+0

@Josh也许你可以通过迭代调用'node.getparent()'并检查每个节点的标记名,id和类名来手动完成它。 –