2012-04-16 217 views
0

我正在從<iframe>獲取數據。 然後,我想從<iframe>使用lxml獲得數據。使用lxml解析iframe

我沒有找到任何可用的資源<iframe>來自lxml

任何人都可以幫助我讓我知道我該如何實現它?

回答

5

您可以從iframe提取src屬性,然後通過urllib獲取從URL數據,最後再使用lxml分析這些數據。

示例代碼(未測試):

from lxml.etree import fromstring 
data = urllib.urlopen(url) # fetching url with iframe 
tree = fromstring(data.read()) # parsing tree to get src attribute 
src_url = tree.cssselect("iframe").attrib['src'] 
data = urllib.urlopen(src_url) # open iframe src url 
tree = fromstring(data.read()) # parsing iframe tree 
+0

我們必須使用什麼來從iframe中獲取src? – sam 2012-04-16 12:55:41

+0

lxml可以打開網址 – MattH 2012-04-16 12:59:32

+0

添加示例代碼。 – methyl 2012-04-16 13:01:49

1

我們必須從iframe發現src屬性,然後請求LIB從src網址提取數據。

import lxml.html as lh 
import requests 


rq= requests.get(url) 

content = rq.content 

doc = lh.fromstring(content) 

for i, elt in enumerate(doc.xpath('//[@id="page_content"]/div[2]/div/div/iframe')): 

    url_data = elt.attrib.get('src') 
    data = requests.get(url_data).content)