К сожалению, такая библиотека как Grablib не полноценно работает под Windows x64,
проблема в библиотеке PyCurl, корректной сборки под 64бита которой нет
последнюю версию библиотеки 2013 года можно скачать отсюда
https://github.com/stden/python2_libs
(либо, конечно, отсюда http://www.lfd.uci.edu/~gohlke/pythonlibs/ , но там, увы, нет exe)
Не 64 битная версия НЕ будет работать с 64 бит версией Питона.
А вышеописанная версия отсюда https://github.com/stden/python2_libs некооректно работает с POST запросами. Причем - по настроению.
Логин - отрабатывает. Поиск с POST запросом - нет.
Будем ждать, когда скомпилируют более новую, а пока - VmWare, Linux
запрос для поиска 64битной сборки под windows: "pycurl-7.19.0.win-amd64-py2.7.exe"
отдельной проблемой является версия pycurl 7.19: дело в том, что до версии 7.19.3 pycurl не поддвреживает уникода вообще, из-за этого зависимости внутри Grab становятся слишком уж сложными, например, такое срабатывает
g.go('http://example.com/search', post={'search': u'request'},
везде одна и та же ошибка:
TypeError: invalid arguments to setopt
однако - если строку закомментировать - все отлично.
в общем, с windows и 64 бит PyCurl не судьба: или Linux или 32 битная версия Питона и т.п.
для справки:
The Unicode handling documented here was implemented in PycURL 7.19.3 along with Python 3 support. Prior to PycURL 7.19.3 Unicode data was not accepted at all:
проблема в библиотеке PyCurl, корректной сборки под 64бита которой нет
последнюю версию библиотеки 2013 года можно скачать отсюда
https://github.com/stden/python2_libs
(либо, конечно, отсюда http://www.lfd.uci.edu/~gohlke/pythonlibs/ , но там, увы, нет exe)
Не 64 битная версия НЕ будет работать с 64 бит версией Питона.
А вышеописанная версия отсюда https://github.com/stden/python2_libs некооректно работает с POST запросами. Причем - по настроению.
Логин - отрабатывает. Поиск с POST запросом - нет.
Будем ждать, когда скомпилируют более новую, а пока - VmWare, Linux
запрос для поиска 64битной сборки под windows: "pycurl-7.19.0.win-amd64-py2.7.exe"
отдельной проблемой является версия pycurl 7.19: дело в том, что до версии 7.19.3 pycurl не поддвреживает уникода вообще, из-за этого зависимости внутри Grab становятся слишком уж сложными, например, такое срабатывает
g.go('http://example.com/search', post={'search': u'request'},
charset='iso-8859-1')
а те же манипуляции с файлом cookies - нет:
g.setup(cookiefile=u'cook.txt'.encode('iso-8859-1'))
TypeError: invalid arguments to setopt
однако - если строку закомментировать - все отлично.
в общем, с windows и 64 бит PyCurl не судьба: или Linux или 32 битная версия Питона и т.п.
окончательно убедиться в этом можно поставив 32 битную версию Питона 2,7, и под нее 32 битные же версии lxml и pycurl
для справки:
The Unicode handling documented here was implemented in PycURL 7.19.3 along with Python 3 support. Prior to PycURL 7.19.3 Unicode data was not accepted at all:
>>> import pycurl
>>> c = pycurl.Curl()
>>> c.setopt(c.USERAGENT, u'Foo\xa9')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: invalid arguments to setopt
Комментарии
Отправить комментарий