Форум сайта python.su
33
BudulianinВы тоже прочитайте :)
Если вы ещё не читали прочитайте эту статью про BeautifulSoup: http://habrahabr.ru/post/114503/
Офлайн
31
В браузере “просмотр кода элемента” , в DOM есть этот класс, но сам скрипт его не находит, и сохраняя на диске дубль страницы , тоже уже измененный, без этой ветви
Офлайн
4
Budulianin
Там же написано span с классом hottrends-single-trend-title
Офлайн
33
SoT
Мне неизвестно что хранится в этом классе
Отредактировано Budulianin (Сен. 26, 2013 00:12:06)
Офлайн
31
Цель - забрать со страницы 5-10 лидирующих поисковых запросов
Пробовал Grab , BeautifulSoup…
Офлайн
857
попробуй это для вычисления результата обфусцированного кода
Отредактировано py.user.next (Сен. 26, 2013 06:52:57)
Офлайн
31
да читаю сейчас, пытаюсь разобраться,спасибо py.user.next Budulianin
Отредактировано sanodin (Сен. 26, 2013 18:31:01)
Офлайн
20
Да причём здесь обфускация, которую вы к тому же с упаковкой путаете. Делается JS не к месту из-за моды и оправдания высоких зарплат и раздутых штатов. Когда-то была благородная цель снизить трафик, но сейчас про неё бладополучно забыли и даже смогли его увеличить.
Готовый интерпретатор JS это конечно хорошо, но ещё вам потребуется 40kloc и год работы (при хорошем изначальном скиле) что бы воссоздать хоть какое-то достаточное браузерное окружение. При чём на этом пути вам будут попадаться только враги: отсутствие документации, стандартов, спецификаций, противоречивые “описания” API и поведения браузеров. Большую часть времени вы будите проводить на форумах и разных тематических сайтах, пытаясь понять по опыту JS-кодеров и собственным эксперементам, как должна быть реализована та или иная хрень в браузере. Поверьте, веб, тот что за картинками с котятами – клоака, какую в программирование встретить возможно никогда больше и не придётся.
Трассируте и анализаруйте запросы браузера. Изучайте, при необходимости, доступный JS. Повторяйте поведение JS на Python. В худшем случае на эту работу потребуется 2 дня.
p.s. Как вы поняли, мои нападки связаны с подорванным психическим здоровьем, после нескольких лет занятия тем, на что другие комментаторы сейчас вас подталкивают :-).
..bw
Отредактировано bw (Сен. 27, 2013 03:38:37)
Офлайн
31
я понял , что мне нужно с помощью pythona отобразить работу js , как в браузере, и считать данные, вчера этим и занимался, spynner , Ghost, selenium…сегодня продолжу
любой браузер, написанный на python, делает это
Отредактировано sanodin (Сен. 27, 2013 07:06:22)
Офлайн
31
С этим просто справился spynner…
В общем пока разбирался
#!/usr/bin/python # -*- coding: utf-8 import spynner import pyquery browser = spynner.Browser(debug_level=spynner.INFO) browser.set_html_parser(pyquery.PyQuery) browser.create_webview() browser.load("http://www.google.com/trends/hottrends#pn=p14") data = browser.soup('span').text("hottrends-single-trend-title") #data = browser.soup('span').after("class='hottrends-single-trend-title'") #data = browser.soup('span').toggleClass("class='hottrends-single-trend-title'") #data = browser.soup("span").attr('class') print data
print dir(browser.soup) ['Fn', '__add__', '__call__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__html__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_append', '_base_url', '_css_to_xpath', '_extend', '_filter_only', '_get_root', '_nextAll', '_parent', '_prevAll', '_translator', '_traverse', '_traverse_parent_topdown', 'addClass', 'after', 'append', 'appendTo', 'attr', 'base_url', 'before', 'children', 'clone', 'closest', 'contents', 'count', 'css', 'each', 'empty', 'encoding', 'end', 'eq', 'extend', 'filter', 'find', 'fn', 'hasClass', 'height', 'hide', 'html', 'index', 'insert', 'insertAfter', 'insertBefore', 'is_', 'items', 'length', 'make_links_absolute', 'map', 'next', 'nextAll', 'not_', 'outerHtml', 'parent', 'parents', 'parser', 'pop', 'prepend', 'prependTo', 'prev', 'prevAll', 'remove', 'removeAttr', 'removeClass', 'remove_namespaces', 'replaceAll', 'replaceWith', 'reverse', 'root', 'show', 'siblings', 'size', 'sort', 'text', 'toggleClass', 'val', 'width', 'wrap', 'wrapAll', 'xhtml_to_html']
Отредактировано sanodin (Сен. 27, 2013 22:21:05)
Офлайн