基于pyquery的刮削微框架。
demiurge的Python项目详细描述
基于pyquery的刮削微框架。 支持python 2.x和3.x。
文档:http://demiurge.readthedocs.org
安装除雾器
$ pip install demiurge
快速启动
使用声明性(django-inspired)语法定义要删除的项:
>>> import demiurge >>> class TorrentDetails(demiurge.Item): ... label = demiurge.TextField(selector='strong') ... value = demiurge.TextField() ... def clean_value(self, value): ... unlabel = value[value.find(':') + 1:] ... return unlabel.strip() ... class Meta: ... selector = 'div#specifications p' ... >>> class Torrent(demiurge.Item): ... url = demiurge.AttributeValueField( ... selector='td:eq(2) a:eq(1)', attr='href') ... name = demiurge.TextField(selector='td:eq(2) a:eq(2)') ... size = demiurge.TextField(selector='td:eq(3)') ... details = demiurge.RelatedItem( ... TorrentDetails, selector='td:eq(2) a:eq(2)', attr='href') ... class Meta: ... selector = 'table.maintable:gt(0) tr:gt(0)' ... base_url = 'http://www.mininova.org' ... >>> >>> t = Torrent.one('/search/ubuntu/seeds') >>> t.name 'Ubuntu 7.10 Desktop Live CD' >>> t.size u'695.81\xa0MB' >>> t.url '/get/1053846' >>> t.html u'<td>19\xa0Dec\xa007</td><td><a href="/cat/7">Software</a></td><td>...' >>> results = Torrent.all('/search/ubuntu/seeds') >>> len(results) 116 >>> for t in results[:3]: ... print t.name, t.size ... Ubuntu 7.10 Desktop Live CD 695.81 MB Super Ubuntu 2008.09 - VMware image 871.95 MB Portable Ubuntu 9.10 for Windows 559.78 MB ... >>> t = Torrent.one('/search/ubuntu/seeds') >>> for detail in t.details: ... print detail.label, detail.value ... Category: Software > GNU/Linux Total size: 695.81 megabyte Added: 2467 days ago by Distribution Share ratio: 17 seeds, 2 leechers Last updated: 35 minutes ago Downloads: 29,085
有关详细信息,请参见文档:http://demiurge.readthedocs.org
为什么demiurge?
柏拉图,作为提迈厄的演讲者,经常提到苏格拉底式的半冲动。 对话提迈厄,约公元前360年。主人公指的是 塑造物质世界的实体。蒂迈厄斯描述了 无保留地仁慈,因此渴望一个像 可能的。然而,世界仍然不完美,因为 世界走出了一个混乱,不确定的不存在。