2013-05-28 48 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')))