Уведомления

Группа в Telegram: @pythonsu

#1 Май 9, 2012 17:44:32

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

Пробовал решать данную задачу на php cURL , авторизация проходила, но перемещаться по страничкам не могла.

Возможно есть встроенные модули для работы с cookie или еще чего? про pyCurl слышал, может есть по лучше решения, т.к. удобно было бы с модулем xmldom.

спасибо

Офлайн

#2 Май 9, 2012 18:20:23

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

pyCurl - он чтобы получить данные а xmldom - чтобы распарсить, вам что нужно-то?

Офлайн

#3 Май 9, 2012 18:32:17

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

да дело в том что под py 2.7 или 3.2 pycurl не станет. Какой в данном случаи выход?

Офлайн

#4 Май 9, 2012 18:55:02

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

ruff3d
да дело в том что под py 2.7 или 3.2 pycurl не станет. Какой в данном случаи выход?
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
In : import pycurl

In : pycurl
Out: <module ‘pycurl’ from ‘/usr/lib/pymodules/python2.7/pycurl.so’>

???

Офлайн

#5 Май 9, 2012 18:55:16

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

http://python-requests.org/ - всех больше нравится (с куками см. Session objects) . Вместо xmldom удобнее lxml.

Офлайн

#6 Май 9, 2012 19:05:56

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

reclosedev
http://python-requests.org/ - всех больше нравится (с куками см. Session objects) . Вместо xmldom удобнее lxml.

спасибо буду пробовать)))

Офлайн

#7 Май 10, 2012 11:35:27

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

попробовал… но проблема осталась. Не возможно пройти авторизацию, вернее даже получить страницу по ssl.
пробовал так:

import requests
try:
    r = requests.get('https://источник.ua/EDZFrontOffice/', verify=False)
    print r.content
except:
    print 'SSl'

Офлайн

#8 Май 10, 2012 16:28:55

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

ruff3d
попробовал… но проблема осталась. Не возможно пройти авторизацию, вернее даже получить страницу по ssl.
Какая проблема то, что конкретно не работает, ошибки какие? Может сайт проверяет юзер-агента и блокирует если браузером не представиться, или он POST запрос для авторизации требует. И в коде вы используете не сессию, так куки не сохранятся.

Может как-то так:
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19",}
s = requests.session(headers=headers)
r = s.get('https://источник.ua/EDZFrontOffice/', verify=False)
print r.content

Офлайн

#9 Май 10, 2012 18:09:54

ruff3d
Зарегистрирован: 2012-05-09
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

reclosedev
ruff3d
попробовал… но проблема осталась. Не возможно пройти авторизацию, вернее даже получить страницу по ssl.
Какая проблема то, что конкретно не работает, ошибки какие? Может сайт проверяет юзер-агента и блокирует если браузером не представиться, или он POST запрос для авторизации требует. И в коде вы используете не сессию, так куки не сохранятся.

Может как-то так:
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19",}
s = requests.session(headers=headers)
r = s.get('https://источник.ua/EDZFrontOffice/', verify=False)
print r.content

дело в том что в реализации на php получить страничку удавалось… даже по ssl причем при передаче post запросов удавалось пройти авторизацию и вернуть авторизированую страницу….

если есть время можете сами попробовать . вот сайт tender . me . gov . ua

Офлайн

#10 Май 10, 2012 19:11:10

Kane
Зарегистрирован: 2012-04-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на сайте с https: для парсинга раздела для авторизированых пользователей

Может быть не совсем то, что Вам нужно, py3k:

import urllib.request
opener = urllib.request.build_opener()
site = opener.open('https://tender.me.gov.ua/')
data = site.read()
f = open('site.html', 'wb')
f.write(data)
f.close()

По редиректам ходит, страничка сохранится в файл

Отредактировано Kane (Май 10, 2012 19:12:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version