跳转至

命令行

需要 pip install "netspy[cli]"

create

netspy create -p news_crawler      # 项目脚手架
netspy create -s ProductSpider     # 一个 AirSpider(写到 ./product_spider.py)
netspy create -i ProductItem       # 一个 Item
netspy create -i news --table news  # 读 MySQL 表结构反射字段(需 [mysql])
netspy create --setting            # 一份注释齐全的 setting.py
netspy create -s Foo --force       # 覆盖已存在文件

名字会自动转换:product-list / product_list / ProductList 都能识别, 生成 class ProductListSpider + 文件 product_list_spider.py

-i --table <表名> 会连 MySQL 读 SHOW FULL COLUMNS,按主键填 __unique_key__ 并把字段 + 注释列进 Item。连接默认取 settingMYSQL_*,也可 --mysql mysql://user:pwd@host:3306/db 覆盖。

shell

netspy shell https://example.com
netspy shell https://spa.example.com --render

抓一个页面进交互式 shell,绑定 request / response / mw。装了 IPython 用 IPython, 否则用内置 REPL(带 tab 补全)。

retry

netspy retry --items       # 重放 failed_items.jsonl 到当前 ITEM_PIPELINES
netspy retry --requests    # 探活:重新下载看目标是否可达(不跑回调、不入库)
netspy retry               # 两者都做

仍失败的记录写回文件,全部成功则删除文件。

版本

netspy --version