Scrapy和框架

时间:2013-05-28 14:08:23

标签: python web-scraping scrapy frames

我需要从HTML文档中抓取数据,其中数据有时直接在表中,有时在<frameset>帧内的表内。在收到HTTP响应之前,我不知道哪个。

目前我有

# 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 个答案:

答案 0 :(得分:2)

您必须获取帧源URL(在帧src属性中给出)并使用该url作为Request url来获取帧中的数据。

答案 1 :(得分:0)

如果您只想抓取帧src网址,请使用此规则:

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