- pyspider的设计基础是: 以python脚本驱动的抓取环模型。
- 通过python脚本进行结构化信息的提取,follow链接调度抓取控制,实现最大的灵活性
- 通过web化的脚本编写、调试环境。web展现调度状态
- 抓取环模型成熟稳定,模块间相互独立,通过消息队列连接,从单进程到多机分布式灵活拓展
scheduler
- web的可视化任务监控
- web脚本编写,单步调试
- 异常捕获、log捕获,print捕获等
- result viewer, exporter
- 每隔30s,前端会自动请求 GET /counter GET /queues
fetcher
- 任务优先级
- 周期定时任务
- 流量控制(控制抓取速度实现)traffic control(token bucket algorithm)-> fetcher
- 基于时间周期 或 前链标签,即itag(例如itag=更新时间)的重抓取调度
- only one scheduler is allowed
- five threading
- judge: new task\re-crawl task
- method, header, cookie, proxy, etag, last_modified, timeout 等等抓取调度控制
- 可以通过适配类似 phantomjs 的webkit引擎支持渲染
- fetch webpages then send results to processor
- Phantomjs Fetcher: fetch and render pages with JavaScript enabled
- 多实例分布式部署
- 内置的pyquery,以jQuery解析页面
- 在脚本中完全控制调度抓取的各项参数
- 可以向后链传递信息
- 异常捕获capture the exceptions and logs
- running the script written by user
- send status(task track) and new tasks to scheduler
- send results to Result Worker
- 多实例分布式部署
- receive results from processor
- overwrite it to deal with result by your needs
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |