基于spider docstrings生成spider md文档。
scrapy-spiderdocs的Python项目详细描述
用法示例
pip install scrapy-spiderdocs scrapy spiderdocs <module.name>
示例项目
例如,请参见documented项目。
# -*- coding: utf-8 -*-importscrapyclassExampleSpider(scrapy.Spider):"""Some text. Hi! ; Note Some note. ; Output { "1": 1 } """name='example'allowed_domains=('example.com',)start_urls=('http://example.com/',)defparse(self,response):yield{'body_length':len(response.body)}classExampleSpider2(scrapy.Spider):"""Some text. Hi! ; Info Some info. """name='example2'allowed_domains=('example.com',)start_urls=('http://example.com/',)defparse(self,response):yield{'success':True}
设置:
SPIDERDOCS_SECTION_PROCESSORS={'output':lambdaname,content:'### {name}\n\n```json\n{content}\n```'.format(name=name,content=content),'info':lambdaname,content:'{content}'.format(content=content)}
执行命令:
scrapy spiderdocs documented.spiders
输出:
# documented.spiders spiders ## example2 [documented.spiders.example.ExampleSpider2] Some info. ## example [documented.spiders.example.ExampleSpider] ### Note Some note. ### Output ```json { "1": 1 } ```
输出选项
标准输出
scrapy spiderdocs <module.name> > somefile.md
-o(–output)选项
scrapy spiderdocs <module.name> -o somefile.md
设置
SPIDERDOCS_LOCATIONS={'module.name':"somefile.md"}
未指定模块时使用的设置。
scrapy spiderdocs
docstring语法
使用;创建节。例如:
; Section 1 Some text ... ; Section 2 Some text ...
使用; end关闭节:
This text will not be added to the documentation. ; Section 1 Some text ... ; end And this text also will be skipped.
分区处理器
例如:
SPIDERDOCS_SECTION_PROCESSORS={'output':lambdaname,content:'### {name}\n\n```json\n{content}\n```'.format(name=name,content=content)}
; Output {"attr": "value"}
将转换为:
### Output ```json { "attr": "value" } ```
碎屑设置
SPIDERDOCS_LOCATIONS: {<module>: <destination>},默认值:{}。
SPIDERDOCS_SECTION_PROCESSORS: {<section_name>: <function(name, content) -> str>},默认值:{}。
参见上面的用法示例。
开发
git clone git@github.com:nanvel/scrapy-spiderdocs.git cd scrapy-spiderdocs virtualenv .env --no-site-packages -p /usr/local/bin/python3 source .env/bin/activate pip install scrapy scrapy crawl example scrapy spiderdocs documented.spiders python -m unittest documented.tests
待办事项
unittests(是否没有docstring,…)