1 Version 4.6.0 (2014-07-06)
3 Split simple robot: separate network operations and
4 URL handling/HTML parsing.
6 Change parse_html to parse strings, not files.
8 Split parse_html/__init__.py into __main__.py.
10 Adapt JSON storage to recent Mozilla export format.
14 Allow parameters in BKMK_* environment variables; for example,
15 BKMK_ROBOT=forking:subproc=urllib or
16 BKMK_STORAGE=json:filename=bookmarks_db.json.
18 Pass subproc parameter to the subprocess to allow different robots.
20 Add a new robot based on urllib2.
22 Version 4.5.6 (2014-01-14)
24 Remove absolute directory ~/lib to make it portable.
26 Version 4.5.5 (2013-12-05)
28 Parse <meta charset="...">.
30 Version 4.5.4 (2013-11-23)
32 Published through git/gitweb.
34 Version 4.5.3 (2013-07-26)
36 Minor tweak in Makefile.
40 Version 4.5.2 (2012-09-24)
44 Handle redirects with codes 303 and 307.
46 Fixed a bug in handling place: URIs (do not append '//').
48 Version 4.5.1 (2011-12-28).
50 Read/write mozilla-specific date/time format in json storage.
52 Version 4.5.0 (2011-12-18).
54 Encode international domain names with IDNA encoding.
56 Adapted to different Mozilla 'place' URIs.
58 Version 4.4.0 (2011-01-07).
60 Moved BeautifulSoup.py and subproc.py from Robots/ to the top-level
63 Moved parse_html.py and its submodules to a separate parse_html package.
65 Added statistics code to parse_html, got a statistics on parser
66 success/failrure rate, reordered parsers.
70 Version 4.3.1 (2011-01-03).
72 Get favicon before HTML redirect (refresh).
74 Version 4.3.0 (2011-01-01).
76 Robots no longer have one global temporary file - there are at least two
77 (html and favicon), and in the future there will be more for asynchronous
78 robot(s) that would test many URLs in parallel.
82 Added HTML Parser based on lxml.
84 Version 4.2.1 (2010-08-12).
86 Added HTML Parser based on html5 library.
88 Version 4.2.0 (2010-08-11).
90 New storage: json; it allows to load and store Mozilla (Firefox) backup
95 Process http error 307 as a temporary redirect.
97 Version 4.1.1 (2008-03-10)
99 Catch and report all errors.
101 Consider application/xhtml+xml as HTML.
103 Better handling of exceptions while looking up the icon.
105 Recode HTML entities.
107 Always use utf-8 as the default encoding.
109 Version 4.1.0 (2008-01-14)
111 Parser for HTML based on BeautifulSoup.
113 Changed User-agent header: I saw a number of sites that forbid
114 "Mozilla compatible" browsers. Added a number of fake headers to pretend
115 this is a real web-browser - there are still stupid sites
116 that are trying to protect themselves from robots by analyzing headers.
118 Handle redirects while looking for the icon.
120 Handle float timeouts in HTML redirects.
122 Minimal required version of Python is 2.5 now.
124 Version 4.0.0 (2007-10-20)
126 Extended support for Mozilla: charset and icon in bookmarks.
127 Use the charset to add Accept-Charset header.
128 Retrieve favicon.ico (or whatever <link> points to) and store it.
130 The project celebrates 10th anniversary!
132 Version 3.4.1 (2005-01-29)
134 Updated to Python 2.4. Switched from CVS to Subversion.
136 Version 3.4.0 (2004-09-23)
138 Extended support for Mozilla: keywords in bookmarks.
139 Updated to m_lib version 1.2.
143 parse_html.py can now recode unicode entities in titles.
149 HTML parser. If the protocol is HTTP, and there is Content-Type header, and
150 content type is text/html, the object is parsed to extract its title; if
151 the Content-Type header has charset, or if the HTML has <META> with
152 charset, the title is converted from the given charset to the default
153 charset. The <HEADER> is also parsed to extract <META> tag with redirect,
158 Complete rewrite from scratch. Created mechanism for pluggable storage
159 managers, writers (DB dumpers/exporters) and robots.