Форум сайта python.su
1. А почему прокси передается двумя параметрами вместо одного? У меня нередко бывало, что в одном списке были и http connect, и socks прокси.
2. Дефолтовые заголовки довольно специфические (и language:ru :)). Хорошо было бы поменять на что-то типичное.
3. Как сделать, чтобы grab выдавал полные заголовки клиента и сервера?
4. А можно pycurl и Grab передать файлобьект с тем, чтобы он работал с ним вместо сокета?
Отредактировано asilyator (Июнь 14, 2012 11:18:21)
Офлайн
lorienЛол, я же не на китайском вроде пишу :)
Не понял.
lorienВ grab есть proxy и proxy_type
> 1. А почему прокси передается двумя параметрами вместо одного? У меня нередко бывало, что в одном списке были и http connect, и socks прокси.
Что за два параметра и один? Не понял.
lorienВозможно, я ее каждый день не обновляю.
> 2. Дефолтовые заголовки довольно специфические (и language:ru :)). Хорошо было бы поменять на что-то типичное.
Пожелания и баги лучше оформлять в виде тикетов в репозитории проекта: http://bitbucket.org/lorien/grab
Какие именно заголовки вам не понравились? Язык по-умолчанию, английский. Видимо, у вас старая версия.
lorienХотя бы на экран, т.е. в stdout
> 3. Как сделать, чтобы grab выдавал полные заголовки клиента и сервера?
Куда выдавал, не понял.
loriengoogle://file object
> 4. А можно pycurl и Grab передать файлобьект с тем, чтобы он работал с ним вместо сокета?
Не понял.
Офлайн
lorienТяжело представить, что моя точка зрения ну настоолько удалена от Вашей, что под каждым моим постом Вы пишете “непонел”.
> Лол, я же не на китайском вроде пишу :)
Вы пишите, не учитывая то, что у меня нет в голове контекста вашего. Вот вы пишите, можно ли выводить. А куда выводить не пишите. Я считаю, правильнее говорить не понял, чем заниматься телепатией.
lorienНет. В списке могут быть socks и http connect прокси. Логично было бы хранить прокс одной структурой и передавать ее грабу, не перепаковывая.
Ваша прокся умеет http и socks?
lorienА через опцию можно? У меня как-то так получалось настроить pycurl.
> Хотя бы на экран, т.е. в stdout
g = Grab()
g.go('http://yahoo.com')
print g.request_headers # request headers
print g.response.headers # response headers
# Also request & response headers are dumped into log files when you activates log_dir option.
Офлайн
lorienДа хотя бы так: (host, port, type).
> Нет. В списке могут быть socks и http connect прокси. Логично было бы хранить прокс одной структурой и передавать ее грабу, не перепаковывая.
Ну вот видите, моя попытка угадать, что вы имели в виду не удалась. Я и щас слабо понимаю, что за структура. Могу конечно опять поугадывать. Вы имеете в виду список записей (ip, port, proxy_type) сериализованных в некую строку? Такого щас в грабе нет. Есть proxylist см. функцию setup_proxylist, но он поддерживает список проксей только одного определённого типа.
Офлайн
lorienСделать-то не проблема, только совместимость может поломаться.
> Да хотя бы так: (host, port, type).
Не, щас такого нет. Давно хочу сделать, но руки не доходят. Т.к. обычно я работаю с проксями одного типа. На самом деле просто надо научить Proxylist класс, чтобы он понимал списки в разных форматах.
Офлайн
Проектирование должно проходить параллельно развитию проекта. Насчет “ломать совместимость” - каким было решение? :)
Офлайн
Я не про proxylist, а про параметр proxy, передаваемый грабу. Сейчас надо давать proxy и proxy_type, почему бы не обьединить их в один proxy=(host, port, type)? Так понятно?
Офлайн
Жалко, так было бы удобнее. Может,хоть проверку на длину кортежа впилите, если 3 - то proxy_type берем из него?
Офлайн
lorienДа, я его использую, иначе я бы не тратил на Вас время :)
Я понимаю, что вам было бы удобнее (я правда не понял, используете ли вы Grab вообще). Просто например 100 пользователей скажут, что им было бы удобнее так и этак, и если это всё реализовать, то получится свалка, одинаково всем неудобная.
Офлайн
Как зааплоадить файл из строки?
UploadFile не принимает юникод.
Офлайн