2014-06-16 2 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; 
} 

는 I 상단 왼쪽 화소 수의 출력을 싶다.

업데이트 :

이 나는 ​​생성 된 출력은 모든 데이터 위의 괄호 사이에만 "왼쪽"문자열을 선택하지 않습니다 지금까지

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

BeautifulSoup에 대한 https://code.google.com/p/soupselect/가 유용하다고 생각합니다. 또한 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

Regex가 내가하고자하는 일에 너무 복잡하다는 것을 증명해 주셔서 감사합니다. 몇 가지 오류가 발생하고 있지만 적어도 시작일뿐입니다. – MacUser