Форум сайта python.su
plusplusНе хотел этого делать. Извините. Перечитал пост, действительно резко выразился.
P.S. Вообще меня так задело, наверное больше даже чем lorien'a, я им столько скриптов написал, он мне такую кучу времени сэкономил, и тут такое резюме: “модуль оооочень сырой”, просто facepalm вообще
odnochlenДа это было бы простым решением. Но не совсем то, что мне нужно. Граб на самом деле не плохой модуль, после гугла, я им воспользовался для решения других задач. Да время сэкономил неплохо, но все же для парсинга серьезных вещей, он не подходит, серьезные вещи все равно приходится парсить на низком уровне. Но вот насчет работы с куками, все же было бы огромным плюсом если прикрутить поддержку кукилиб. Это бы очень изменило мое мнение . А так автору респект, надеюсь его я не сильно задел своей критикой.
Надеюсь, ТС не хочет от http клиента, чтобы он интерпретировал js и flash (тогда ему дорога к Selenium & co, которые и жрут больше)?
Офлайн
psyh0yА примерно, что за серьезные вещи такие и что подразумевается под низким уровнем?. Вообще в grab в любой момент можно получить curl-объект и напряую задавать ему опции. Но может я как-то не так понял, по подробней пожалуйста.
Да это было бы простым решением. Но не совсем то, что мне нужно. Граб на самом деле не плохой модуль, после гугла, я им воспользовался для решения других задач. Да время сэкономил неплохо, но все же для парсинга серьезных вещей, он не подходит, серьезные вещи все равно приходится парсить на низком уровне.
psyh0y
Но вот насчет работы с куками, все же было бы огромным плюсом если прикрутить поддержку кукилиб. Это бы очень изменило мое мнение =). А так автору респект, надеюсь его я не сильно задел своей критикой.
Офлайн
plusplusСолидарен. Будет пример глючащего кода?
Вот насчет 99% случаев, ни разу не сталкивался с проблемой установки cookie.
Офлайн
99% - я имел в виду свои задачи, в грабе нету корректной поддержки кук т.к. мне пока это не понадобилось за пять лет :)
Фейсбук, мамба, не знаю, не парсил. С куками ещё бывает один фокус, кука может ставиться вместе с выдачей какой-нибудь картинки или скрипта. Вопрос решается анализом HTTP-трафика в дебагере браузера или в снифере.
Я, конечно, не против, если кто-то прикрутит cookielib. Что для этого нужно, я уже писал: понимать как работает граб и кукилиб, я как-то пытался вонзить кукилиб в граб, не помню уже на чём дело застопорилось.
Я когда-нибудь поковыряю cookielib, только когда это когда-нибудь наступит, не знаю. В любом случае я не против критики граба, я примерно понимаю, что нужно пользователям библиотеки. Хотелки и баги лучше оформлять в виде тикетов на битбакете.
Офлайн
И все же поднимаю еще раз, вопрос не убит. Не пойму в чем дело…
На этот раз google groups
self.start_link = "https://accounts.google.com/"
try: http.go("https://www.google.com") http.go(self.start_link) except Exception,Error: self.login_error = Error return (False,"HTTP") http.set_input(u"Email",self.google_account) http.set_input(u"Passwd",self.google_password) http.submit(u"signIn") if http.response.body.find('https://accounts.google.com/Logout') >0: print "OK"
Офлайн
psyh0yДа? Интересно. Я тоже пытался залогиниться в гугл, только не на гугл-группы переходил, а куда-то в другое место и точно также сразу переставал быть авторизованным, в итоге забросил. А вот то, что в urllib2 всё ок, это крайне любопытно, по идее отличия просто ДОЛЖНЫ быть в запросах) Если, говоришь, всё-таки не видно разницы в запросах, попробуй библиотеку requests, здесь на форуме было обсуждение, как заставить её работать через соксы.
когда работаешь в связке urllib2 + cookielib все в норме
Офлайн
plusplusБлагодарю за ответ. Обязательно глянул, с requests работал, только вот насчет соксов слышу впервые.
Да? Интересно. Я тоже пытался залогиниться в гугл, только не на гугл-группы переходил, а куда-то в другое место и точно также сразу переставал быть авторизованным, в итоге забросил. А вот то, что в urllib2 всё ок, это крайне любопытно, по идее отличия просто ДОЛЖНЫ быть в запросах) Если, говоришь, всё-таки не видно разницы в запросах, попробуй библиотеку requests, здесь на форуме было обсуждение, как заставить её работать через соксы.
Офлайн
psyh0yЗадача решена. Именно в этом дело. Просматриваем Grab().response.head, видим множество Set-Cookies,
а в grablib походу идет просто добавление новых cookies, так как это словарь, получается просто замена переменной другим значением
Офлайн
psyh0yНу уж не при каждом, тут просто у гугла какой-то нестандарт наверное
При каждом запросе заниматься таким сексом - это конечно же бред.
psyh0yhttps://bitbucket.org/lorien/grab отпиши еще автору в трекер, для надежности. И еще такой вопрос, точно ли grab портит куки или может дело в pycurl?
Но если автор grablib, найдет немного времени, помочь разобраться с его кодом(участок получения и выдачи cookies), то можно этот баг исправить. Либо если он сам введет изменения. Спасибо всем кто участвовал.
Офлайн
Скорее всего дело в Grab, я совершенно серьёзно говорю, там куки от любых доменов миксуются (и заодно перезатирают друг друга) в один словарик. Понятно, что это криво, но у меня пока всё работало до сих пор. Ждём пока кто-нибудь не исправит этот момент или пока у меня самого настроения не появится поработать с этой фичей.
Офлайн