Форум сайта python.su
0
paraman как я понял нужно передать супу содержимое странички полученной в свою очередь грабом.. так вот целиком html содержимое можно передать в переменную вот так: html = g.response.body.
теперь по поводу супа.. вопрос многогранный, если проделана уже огромная работа то перекодировать конечно обломно
но! на сколько я осведомился по супу, то граб может выполнять все тоже, и даже больше, поэтому для парсинга подходит с лихвой.. В то же время если собершся переписывать, тоже плюс, так как это опыт, как в грабе так и в супе..
Честно, если бы я сейчас был на твоем месте, то меня смущал бы тот факт что я используя две такие мощные библиотеки в одном проекте, и при этом юзаю например граб не на полную мощь, а только так что бы перейти по ссылке и все.. для переходов и получения контента, вроде бы можно и встроенный urllib заюзать 
Отредактировано funnyman (Июль 11, 2012 01:03:15)
Офлайн
14
funnymanМожно, конечно, только после граба или requests делать это совсем не хочется.
для переходов и получения контента, вроде бы можно и встроенный urllib заюзать
Офлайн
1
Коллеги по цеху. Ваши комментарии ценны. Я действительно написал парсер с требуемыми для меня условиями и чёрт побери очень рад тому, что смог это сделать, но как сказал уважаемый funnyman, опыт. Мне нужен опыт.
Сейчас скрипт (31 строка) выполняется:
real 0m13.333s user 0m10.581s sys 0m0.024s
Офлайн
52
paraman, много или мало по сравнению с чем? Вы считаете есть прямая зависимость между количеством строк кода и ожидаемым временем работы? Показывайте код, поможем сделать быстрее.
Офлайн
1
Мне быстрей не нужно, для новичка с двух недельным опытом работы. Это результат. 
Быть может есть что почитать с примерами на тему граба?
P.s. уже изучаю http://grablib.org/docs
Офлайн
1
А почему так?
Если
from grab import Grab s = 'http://sports.betfair.com' g = Grab() g.go('http://www.betfair.com/en/') g.go('http://soccer.betfair.com/') g.set_input('username', '***') g.set_input('password', '***') g.submit() d = s+g.xpath('//div/span/a[@class="i13n-ltxt-MoreMkts"]').get('href') g.go(d) for d in g.xpath_list('//*[@class="home-team"]'): print d.text.replace('\n', '').replace(' ', '')
from grab import Grab s = 'http://sports.betfair.com' g = Grab() g.go('http://www.betfair.com/en/') g.go('http://soccer.betfair.com/') d = s+g.xpath('//div/span/a[@class="i13n-ltxt-MoreMkts"]').get('href') g.go(d) for d in g.xpath_list('//*[@class="home-team"]'): print d.text.replace('\n', '').replace(' ', '')
Отредактировано paraman (Июль 11, 2012 14:23:36)
Офлайн
0
регистрироваться там лень чтобы код проверить, а так для начала просто посмотри что меняется в html при логине и без него.. дома буду, регнусь и гляну..
Офлайн
1
funnyman
регистрироваться там лень чтобы код проверить, а так для начала просто посмотри что меняется в html при логине и без него.. дома буду, регнусь и гляну..
home1 = home.text.__str__() home2 = home1.replace('\n', '').replace(' ', '')
Отредактировано paraman (Июль 12, 2012 09:12:36)
Офлайн
14
str(home.text).replace('\n', '').replace(' ', '')
Офлайн
1
odnochlenstr(home.text).replace('\n', '').replace(' ', '')
w1 = str(home.text).replace('\n', '').replace(' ', '') if w1: w2.append(w1)
Офлайн