2013-09-06 2 views
2

저는 파이썬에 초보자입니다. 다음은 파이썬에서 작업하는 코드입니다.파이썬에서 html 태그 값 가져 오기

import urllib2 
import sys  

url ="mydomain.com" 
usock = urllib2.urlopen(url) 
data = usock.read() 
usock.close() 

print data 

이렇게 HTML 마크 업을 얻으면 효과가 있습니다.

내가하고 싶은 일은 <font class="big"></font> 태그 내부에서 값을 얻는 것입니다. 예를 들면. 이 예에서 데이터 값이 필요합니다.

<font class="big">Data</font> 

수행 방법?

+0

'font'를? 와우, 정말 늙고 사악한 HTML입니다. – Matthias

답변

4

당신은 BeautifulSoup 같은 HTML 파서 모듈을 사용할 수 있습니다

from bs4 import BeautifulSoup as BS 
url ="mydomain.com" 
usock = urllib2.urlopen(url) 
data = usock.read() 
usock.close() 
soup = BS(data) 
print soup.find('font', {'class':'big'}).text 

이것은 class="big"로 태그 <font>를 찾습니다. 그런 다음 내용을 인쇄합니다.

+0

ImportError : bs4 – heron

+0

@heron이라는 모듈이 없습니다. 표준 라이브러리에 없습니다. 다운로드 링크를 찾으려면 제공된 링크를 확인하십시오. – TerryA

1

lxml 사용 :

import urllib2 
import lxml.html 

url ="mydomain.com" 

usock = urllib2.urlopen(url) 
data = usock.read() 
usock.close() 
for font in lxml.html.fromstring(data).cssselect('font.big'): 
    print font.text 

>>> import lxml.html 
>>> root = lxml.html.fromstring('<font class="big">Data</font>') 
>>> [font.text for font in root.cssselect('font.big')] 
['Data'] 
관련 문제