All Versions
Latest Version
Avg Release Cycle
131 days
Latest Release
2227 days ago

Changelog History

  • v0.3.10 Changes

    April 18, 2018

    πŸ†• New features:

    • βž• add phantomjs proxy support #692 @volvofixthis
    • πŸ‘Œ support redis 3.x in cluster mode for message queue @hackty

    πŸ›  Fix several bugs:

    • πŸ‘Œ Improve the performance of counter.to_dict
    • πŸ›  Fixed issue of counter changed during read
    • πŸ›  Fix tornado version dependency in
  • v0.3.9 Changes

    March 18, 2017

    πŸ†• New features:

    • πŸ‘Œ Support for Python 3.6.
    • ⏱ Auto Pause: the project will be paused for scheduler.PAUSE_TIME (default: 5min) when last scheduler.FAIL_PAUSE_NUM (default: 10) task failed, and dispatch scheduler.UNPAUSE_CHECK_NUM (default: 3) tasks after scheduler.PAUSE_TIME. Project will resume if any one of last scheduler.UNPAUSE_CHECK_NUM tasks success.
    • 0️⃣ Each callback now have a default 30s process time limit. (Platform support required) @beader
    • πŸ†• New Javascript render engine - Splash support: Enabled by fetch argument --splash-endpoint=http://splash:8050/execute
    • πŸ‘ Python3 webdav support.
    • πŸ‘ Python3 from projects import project support.
    • A link to corresponding task is added to webui debug page when debugging a exists task in webui.
    • πŸ†• New user_agent parameter in self.crawl, you can set user-agent by headers though.

    πŸ›  Fix several bugs:

    • πŸ†• New webui dashboard frontend framework - vue.js, improved the performance when having large number of tasks (e.g.
    • πŸ›  Fix crawl_config doesn't work in webui while debugging a script issue.
    • πŸ›  Fix CSS Selector Helper doesn't work issue. @ackalker
    • πŸ›  Fix connection_timeout not working issue.
    • πŸ›  FIx need_auth option not applied on webdav issue.
    • πŸ›  Fix "fix can't dump counter to file: scheduler.all" error.
    • πŸ›  Some other fixes
  • v0.3.8 Changes

    August 18, 2016

    πŸ†• New features:

    πŸ›  Fix several bugs:

    • ⏱ * Fixed a global config object thread interference issue, which may cause connect to scheduler rpc error: error(10061, '') error when all --run-in=thread (default in windows platform)
    • πŸ›  Fix lost when fetch failed issue
    • πŸ›  Fix potential scheduler failure caused by old version of six
    • πŸ›  Fix result dump return nothing when using mongodb backend
  • v0.3.7 Changes

    April 20, 2016

    retry_delay is a dict to specify retry intervals. The items in the dict
    are {retried: seconds}, and a special key: '' (empty string) is used to
    0️⃣ > specify the default retry delay if not specified.

    • πŸ”€ dict parameters in crawl_config, @config will be merged (e.g. headers), thanks to @ihipop
    • βž• add parameter max_redirects in self.crawl to control maximum redirect numbers when doing the fetch, thanks to @AtaLuZiK
    • βž• add parameter validate_cert in self.crawl to ignore the error of server’s certificate.
    • πŸ†• new property etree for Response, etree is a cached lxml.html.HtmlElement object, thanks to @waveyeung
    • πŸ’» you can now pass arguments to phantomjs from command line or config file.
    • πŸ‘Œ support for pymongo 3.0
    • local.projectdb now accept a glob path (e.g. script/*.py) to load multiple projects from local filesystem.
    • queue size in the dashboard is not working for osx, thanks to @xyb
    • counters in dashboard will shown for stopped projects
    • other bug fix
  • v0.3.6 Changes

    November 10, 2015
    • πŸ†• NEW: webdav mode, now you can use webdav to mount project folder to your local filesystem and edit scripts with your favority editor! (not support python 3, wsgidav required, which is not contained in
    • πŸ› bug fixes for Python 3 compatibility, Postgresql, flask-Login>=0.3.0, typo and more, thanks for the help of @lushl9301 @hitjackma @exoticknight @d0ugal @qiang.luo @twinmegami @jttoday @machinewu @littlezz @yaokaige
    • πŸ›  fix Queue.qsize NotImplementedError on Mac OS X, thanks @xyb
  • v0.3.5 Changes

    May 22, 2015
    • πŸ†• New parameter: auto_recrawl - auto restart task every age.
    • New parameter: js_viewport_width/js_viewport_height to set viewport size for phantomjs engine.
    • πŸ†• New command line option to set different message queue backends with URI scheme.
    • πŸ†• New task level storage mechanism:
    • πŸ†• New redis taskdb
    • πŸ†• New redis message queue.
    • πŸ†• New high level message queue interface kombu.
    • πŸ›  Fix bugs related to mongodb (keyword missing if not set).
    • πŸ›  Fix phantomjs not work in all mode.
    • πŸ›  Fix a potential deadlock in processor send_message.
    • ⏱ Default log level of scheduler is changed to INFO
  • v0.3.4 Changes

    April 21, 2015


    • πŸ†• New message queue support: beanstalkd by @tiancheng91
    • πŸ†• New global argument: --logging-config to specify a customization logging config (to disable werkzeug logs for instance). You can get a sample config from pyspider/logging.conf).
    • πŸ“¦ Project group info is added to task package now.
    • πŸ”„ Change docker base image to cmfatih/phantomjs, you can use phantomjs with same docker image now.
    • 0️⃣ Auto restart phantomjs if crash, only enabled in all mode by default.


    • πŸ‘‰ Show next exetime of a task in task page.
    • πŸ‘‰ Show fetch time and process time in tasks page.
    • πŸ‘‰ Show average fetch time and process time in 5min in dashboard page.
    • πŸ‘‰ Show message queue status in dashboard page.
    • πŸ‘ limit and offset parameter support in result dump.
    • πŸ›  Fix frontend bug when crawling pages with dataurl.


    • πŸ›  Fix support for phantomjs 2.0.
    • πŸ›  Fix scheduler project update inform not work, and use md5sum of script as another signal.
    • ⏱ Scheduler: periodic counter report in log.
    • Fetcher: fix for legacy version of pycurl
  • v0.3.3 Changes

    March 08, 2015



    • A new css selector tool bar is added, the pre-generated css selected pattern can be modified and added/copy to script.


    • βœ… The database table for bench test will be cleared before and after bench test.
    • ⚑️ insert/update/get bench test for database and put/get test for message queue is added.


    • 0️⃣ The default message queue is switched to ampq.
    • πŸ“„ docs fix.
  • v0.3.2 Changes

    February 11, 2015

    ⏱ Scheduler

    • ⏱ The size of task queue is more accurate now, you can use it to determine all done status of scheduler.


    • πŸ›  Fix tornado loss cookies while doing 30x redirects
    • You can use cookies with cookie header at same time now
    • πŸ›  Fix proxy not working bug.
    • 0️⃣ Enable proxy by default.
    • πŸ‘ Proxy now support username and password authorization. @soloradish
    • Etag and Last-Modified header will be disabled while last crawl is failed.


    • 0️⃣ MySQL default engine changed to InnoDB @laapsaap
    • MySQL, larger result column size, changed to MEDIUMBLOB(up to 16M) @laapsaap


    • WebUI will use same arguments as the fetcher, fix proxy not word for webui bug.
    • ⚑️ Results will be sorted in the order of updatetime.

    One Mode

    • πŸ”Š Script exception logs would be printed to screen

    πŸ†• New Command send_message

    You can use the command pyspider send_message [project] [message] to send a message to project via command-line.


    • βœ… Using localhosted test web pages
    • βœ‚ Remove version specify of lxml, you can use apt-get to install any version of lxml
  • v0.3.1 Changes

    January 22, 2015

    One Mode

    βœ… One mode not only means all-in-one, it runs every thing in one process over tornado.ioloop. One mode is designed for debug purpose. You can test scripts written in local files and using --interactive to choose a task to be tested.

    βœ… With one mode you can use pyspider.libs.utils.python_console() to open an interactive shell in your script context to test your code.

    πŸ“š full documentation:

    • πŸ› bug fix