Форум сайта python.su
173
asilyatorВ какой-то теме уже спрашивал, что там не так? Вроде все работает:
requests базируется на httplib и с проксями тоже не дружит.
# -*- coding: utf-8 -*- import requests from requests.auth import HTTPProxyAuth proxies = {'http': 'http://192.168.0.50:8080', 'https': 'http://192.168.0.50:8080'} auth = HTTPProxyAuth('username', 'mypassword') # если нужно s = requests.session(proxies=proxies, auth=auth) print s.get('http://ya.ru').content
asilyatorДа, но если один раз освоить XPath и CSS селекторы, желание возвращаться к регулярками отпадет.
В общем случае - неправда, особенно если не иметь отношения к веб-разработке.
Отредактировано reclosedev (Май 31, 2012 07:44:03)
Офлайн
0
переписываю все под requests
Итак вот имею
def get_method_url(): s = requests.session() s.get(url) r = s.get(url) return r.text def get_javax_faces(): javalue = re.findall(r'name="javax.faces.ViewState" id="javax.faces.ViewState" value="(.*?)"', get_method_url()) javalue1 = re.findall(r'name="javax.faces.ViewState" id="javax.faces.ViewState" value="(.*?)"', get_method_url()) javalue2 = re.findall(r'name="javax.faces.ViewState" id="javax.faces.ViewState" value="(.*?)"', get_method_url()) javalue3 = re.findall(r'name="javax.faces.ViewState" id="javax.faces.ViewState" value="(.*?)"', get_method_url()) print javalue[0] print javalue1[0] print javalue2[0] print javalue3[0] return javalue
6348747771018317322:5767532781432039176 -3503099881244293878:4103058380486926715 -5837411956001929196:-1192284958002050963 -3087026917267320022:-4140725967561319013
Отредактировано boris_blade (Май 31, 2012 14:32:20)
Офлайн
173
boris_bladeОчевидно, что написать так, чтобы она этого не делала.
Очевидно, что get_method_url каждый раз заново запрашивает странику.
Как этого избежать?
Офлайн
0
reclosedevboris_blade
Очевидно, что get_method_url каждый раз заново запрашивает странику.
Как этого избежать?
- создаем сессию один(!) раз, сохраняя ее как атрибут или глобально,
Офлайн
-2
reclosedevА если толком не освоить - не отпадет, тем более, что посроение дерева медленнее регулярок. Там, где можно обойтись регуляркой - вполне можно именно ей и обойтись.
Да, но если один раз освоить XPath и CSS селекторы, желание возвращаться к регулярками отпадет.
boris_blades должна сохраняться между вызовами.
Так в том-то и дело, что я не знаю, что прочитать, чтобы разобраться.
Офлайн
857
asilyatorрегулярки легко ломаются, так как у них плоский анализ
А если толком не освоить - не отпадет, тем более, что посроение дерева медленнее регулярок.
Офлайн
0
Регулярки-нерегулярки, но кто-нибудь скажет все же как же сохранить сессию и работать за тем только в ней?
Я даже не знаю, что прочитать на эту тему, на какие примеры посмотреть.
Офлайн
173
boris_blade
как же сохранить сессию и работать за тем только в ней?
# создаем сессию один раз и сохраняем в глобальной переменной session session = requests.Session() # если нужно добавить опции для сессии, делаем это при создании def do_login(login_url, user, password): # используем сессию из глобальной переменной для получения страницы логина login_page = session.get(login_url).text # # выдираем значение/значения (условно) values = re.findall('some funky regexs', login_page ) # делаем пост запрос для логина return session.post(login_url, data={'user': user, 'password': password, 'some_value': values[0]}) # в других функциях, тоже используем session def do_something_else(another_url): session.get(another_url)
def do_login(session, url, ...): .... do_login(session, 'http://...', ...)
Офлайн
-2
py.user.nextА если надо проверить наличие нужного текста на странице? Таблицы ими, понятное дело, не распарсишь.
регулярки легко ломаются, так как у них плоский анализ
Офлайн
857
asilyatorзнаешь, бывают данные в скриптах прямо записаны
А если надо проверить наличие нужного текста на странице? Таблицы ими, понятное дело, не распарсишь.
Офлайн