mechanize version 2.1 has been released!
The Mechanize library is used for automating interaction with websites.
Mechanize automatically stores and sends cookies, follows redirects,
can follow links, and submit forms. Form fields can be populated and
submitted. Mechanize also keeps track of the sites that you have
visited as
a history.
=== 2.1 / 2011-12-20
-
Deprecations
- Mechanize#get no longer accepts an options hash.
- Mechanize::Util::to_native_charset has been removed.
-
Minor enhancements
-
Mechanize now depends on net-http-persistent 2.3+. This new version
brings idle timeouts to help with the dreaded “too many connection
resets”
issue when POSTing to a closed connection. Issue #123 -
SSL connections will be verified against the system certificate
store by
default. -
Added Mechanize#retry_change_requests to allow mechanize to retry
POST and
other non-idempotent requests when you know it is safe to do so.
Issue
#123 -
Mechanize can now stream files directly to disk without loading them
into
memory first through Mechanize::Download, a pluggable parser for
downloading files.All responses larger than Mechanize#max_file_buffer are downloaded
to a
Tempfile. For backwards compatibility Mechanize::File subclasses
still
load the response body into memory.To force all unknown content types to download to disk instead of
memory
set:agent.pluggable_parser.default = Mechanize::Download
-
Added Mechanize#content_encoding_hooks which allow handling of
non-standard content encodings like “agzip”. Patch #125 by
kitamomonga -
Added dom_class to elements and the element matcher like dom_id.
Patch
#156 by Dan Hansen. -
Added support for the HTML5 keygen form element. See
HTML Standard Patch
#157
by Victor Costan. -
Mechanize no longer follows meta refreshes that have no “url=” in
the
content attribute to avoid infinite loops. To follow a meta refresh
to
the same page set Mechanize#follow_meta_refresh_self to true. Issue
#134
by Jo Hund. -
Updated ‘Mac Safari’ User-Agent alias to Safari 5.1.1. ‘Mac Safari
4’ can
be used for the old ‘Mac Safari’ alias. -
When given multiple HTTP authentication options mechanize now picks
the
strongest method. -
Improvements to HTTP authorization:
- mechanize raises Mechanize::UnathorizedError for 401 responses
which is
a sublcass of Mechanize::ResponseCodeError. - Added support for NTLM authentication, but this has not been
tested.
- mechanize raises Mechanize::UnathorizedError for 401 responses
-
Mechanize::Cookie.new accepts attributes in a hash.
-
Mechanize::CookieJar#<<(cookie) (alias: add!) is added. Issue #139
-
Different mechanize instances may now have different loggers. Issue
#122 -
Mechanize now accepts a proxy port as a service name or number
string.
Issue #167
-
-
Bug fixes
- Mechanize now handles cookies just as most modern browsers do,
roughly based on RFC 6265.-
domain=.example.com (which is invalid) is considered identical to
domain=example.com. - A cookie with domain=example.com is sent to host.sub.example.com
as well as host.example.com and example.com. - A cookie with domain=TLD (no dots) is accepted and sent if the
host name is TLD, and rejected otherwise. To retain compatibility
and convention, host/domain names starting with “local” are exempt
from this rule. - A cookie with no domain attribute is only sent to the original
host. - A cookie with an Effective TLD is rejected based on the public
suffix list. (cf. http://publicsuffix.org/) - “Secure” cookies are not sent via non-https connection.
- Subdomain match is not performed against an IP address.
- It is recommended that you clear out existing cookie jars for
regeneration because previously saved cookies may not have been
parsed correctly.
-
domain=.example.com (which is invalid) is considered identical to
- Mechanize takes more care to avoid saving files with certain unsafe
names.
You should still take care not to use mechanize to save files
directly
into your home directory ($HOME). Issue #163. - Mechanize#cookie_jar= works again. Issue #126
- The original Referer value persists on redirection. Issue #150
- Do not send a referer on a Refresh header based redirection.
- Fixed encoding error in tests when LANG=C. Patch #142 by jinschoi.
- The order of items in a form submission now match the DOM order.
Patch
#129 by kitamomonga - Fixed proxy example in EXAMPLE. Issue #146 by NielsKSchjoedt
- Mechanize now handles cookies just as most modern browsers do,