2013-05-28 26 views
2

我需要從HTML文檔中抓取數據,其中數據有時直接位於表格內,有時位於<frameset>框架內的表格內。我直到收到HTTP響應才知道。Scrapy和框架

目前我有

# works only when data directly in the HTML 
rules = [ 
    Rule(SgmlLinkExtractor(allow=[r'/data/(\w+)-content.htm']), callback='parse_content') 
] 

# works when data inside a frame 
rules = [ 
    ??? 
] 

我如何告訴scrapy使用框架,其中框架存在,並直接使用HTML它在哪裏呢?

我很困惑scrapy如何處理從幀中提取信息。是否有XPath技巧?我是否必須以某種方式與Response物體混合?

回答

2

您必須獲取框架源URL(在框架src屬性中給出),並使用該URL作爲請求URL來獲取框架中的數據。

0

使用此規則,如果你只是想抓住框架SRC URL格式,以及:

Rule(SgmlLinkExtractor(allow = (all_subdomains,), tags=('a', 'area', 'frame'), attrs=('href','src')))