2014-06-16 98 views
0

我試圖從HTML文檔中提取CSS數據。 數據點是座標由用戶生成到圖像圓的x-y的可變數目和導出到HTML如下:Beautifulsoup的CSS數據提取

#shapes a#rage_circle1{ 
    top: 248px; 
    left: 231px; 
    width: 18px; 
    height: 18px; 
    border: 1px solid #000000; 
    background-image: none; 
} 

我想的頂部和左像素數的輸出。

更新:

這是我迄今

from bs4 import BeautifulSoup 
import re 
soup = BeautifulSoup (open ('index.html')) 
x= soup.findAll(text=re.compile('left')) 
print (x) 

做產生的輸出高於括號之間的所有數據,並不僅是在選擇了「左」的字符串。我不知道爲什麼我的腳本沒有選擇大括號之間的特定數據。有什麼建議麼?

+1

那麼你可以使用正則表達式,我認爲BeautifulSoup.find_all()可以採用正則表達式作爲輸入。 – PepperoniPizza

+0

我認爲https://code.google.com/p/soupselect/對於BeautifulSoup很有用。也看看http://stackoverflow.com/questions/2716181/beautifulsoup-but-for-css。 –

回答

1

我認爲cssutils是您的問題的正確選擇。以下片段將簡單輸出所有topleft屬性的值。

import cssutils 
css = cssutils.parseFile('index.html') 
for rule in css.cssRules: 
    print(rule.style.top) 
    print(rule.style.left) 
+0

謝謝你這個正則表達式對於我打算做的任務來說太複雜了。一些錯誤正在被拋出,但至少這是一個開始。 – MacUser