一个小的实用程序集,用于简化编写碎片蜘蛛。

scrapy-boilerplate的Python项目详细描述


废弃的样板文件是一个小的实用程序集,可以简化Scrapy 编写低复杂度的蜘蛛,这在小型和一次性项目中非常常见。

它需要Scrapy(>;=0.16),并已使用Python2.7进行了测试。 另外,运行examples中的脚本需要PyQuery 目录。

注意

该代码是实验性的,包括一些隐藏的魔法,可能是 很难调试。如果您是Scrapy新手,请不要使用此代码,除非 您已经准备好调试以前没有人看到的错误。

使用指南

项目

标准项目定义:

fromscrapy.itemimportItem,FieldclassBaseItem(Item):url=Field()crawled=Field()classUserItem(BaseItem):name=Field()about=Field()location=Field()classStoryItem(BaseItem):title=Field()body=Field()user=Field()

变成:

fromscrapy_boilerplateimportNewItemBaseItem=NewItem('url crawled')UserItem=NewItem('name about location',base_cls=BaseItem)StoryItem=NewItem('title body user',base_cls=BaseItem)

基底蜘蛛

标准蜘蛛定义:

fromscrapy.spiderimportBaseSpiderclassMySpider(BaseSpider):name='my_spider'start_urls=['http://example.com/latest']defparse(self,response):# do stuff

变成:

fromscrapy_boilerplateimportNewSpiderMySpider=NewSpider('my_spider')@MySpider.scrape('http://example.com/latest')defparse(spider,response):# do stuff

爬行蜘蛛

标准爬网蜘蛛定义:

fromscrapy.contrib.spidersimportCrawlSpider,Rulefromscrapy.contrib.linkextractors.sgmlimportSgmlLinkExtractorclassMySpider(CrawlSpider):name='my_spider'start_urls=['http://example.com']rules=(Rule(SgmlLinkExtractor('category\.php'),follow=True),Rule(SgmlLinkExtractor('item\.php'),callback='parse_item'),)defparse_item(self,response):# do stuff

变成:

fromscrapy_boilerplateimportNewCrawlSpiderMySpider=NewCrawlSpider('my_spider')MySpider.follow('category\.php')@MySpider.rule('item\.php')defparse_item(spider,response):# do stuff

跑步助手

单蜘蛛运行脚本:

# file: my-spider.py# imports omitted ...classMySpider(BaseSpider):# spider code ...if__name__=='__main__':fromscrapy_boilerplateimportrun_spidercustom_settings={# ...}spider=MySpider()run_spider(spider,custom_settings)

带有标准爬网命令行选项的多蜘蛛脚本:

# file: my-crawler.py# imports omitted ...classMySpider(BaseSpider):name='my_spider'# spider code ...classOtherSpider(CrawlSpider):name='other_spider'# spider code ...if__name__=='__main__':fromscrapy_boilerplateimportrun_crawler,SpiderManagercustom_settings={# ...}SpiderManager.register(MySpider)SpiderManager.register(OtherSpider)run_crawler(custom_settings)

注意

有关工作代码示例,请参见examples目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据两个数组的值对数组进行排序   具有自签名证书和NTLM代理的java Maven SSL repo错误   java自定义字体按钮不工作AndroidStudio   java通过Spring MVC web应用程序向客户端发送文本文件   Java Spring Web服务SOAP身份验证   ANT property environment=“env”无法在JAVA中检索它,但如果作为ANT命令运行,则可以正常工作   java是为spring mvc rest api或spring boot api对应用服务器的每个新请求创建的服务、存储库和组件的新实例吗?   java私有静态最终字符串未完成其工作   PKCS12的安全Java密钥重新处理   java JPA继承表每类SQLSyntaxErrorException