Форум сайта python.su
Здравствуйте, друзья. Подскажите, пожалуйста, можно ли средствами python 2.7 осуществить такую программу:
1) Программа заходит на сайт (например, на vk.com)
2) Программа предлагает ввести логин и пароль
3) Программа осуществляет вход
4) Далее в нее можно ввести ссылку ресурса и она перейдет на указанную ссылку все того же, скажем, контакта и выведет html код страницы на экран/в файл
Вывод, очевидно, я понимаю, да и вход на сайт, если я ничего не путаю можно сделать так:
import urllib2 from urllib import urlencode from cookielib import CookieJar cookie_processor = urllib2.HTTPCookieProcessor(CookieJar()) opener = urllib2.build_opener(cookie_processor) opener.open('http://vk.com/', urlencode({}))
Офлайн
Если хочется сделать работу прозрачнее и нет необходимости работать на уровне urllib2 то посоветую модуль Grab, по средствам grab объекта вы сможете делать все что вам нужно и даже больше, есть документация на русском
Офлайн
Используйте Grab или requests.
Пример авторизации и получения произвольной страницы с использованием requests:
import requests EMAIL = '' PASSWORD = '' s = requests.Session() # авторизация resp = s.post('https://login.vk.com', data={ 'act': 'login', 'email': EMAIL, 'pass': PASSWORD }) print(resp.text) # получаем произвольные страницы от имени залогиненного пользователя resp = s.get('http://vk.com/feed') print(resp.text)
GeckoЧто конкретно вам не понятно?
но остальное…
Помогите, пожалуйста
Офлайн
GaiveR Теперь все понятно. Ну почти. requests.Session().post(adress, data) не совсем понял, что произошло. Что должно быть в этом словаре? переменные, как они называются в коде страницы?
Офлайн
Да, а еще возник вопрос - как триггернуть кнопку на странице?
Офлайн
GeckoВ data должны быть параметры post-запроса. Посмотреть их в коде страницы можно, но удобнее делать это в сниффере (fiddler2, TamperData в firefox и др.)
Что должно быть в этом словаре? переменные, как они называются в коде страницы?
GeckoТриггернуть = нажать?
Да, а еще возник вопрос - как триггернуть кнопку на странице?
Офлайн
GaiveRТеперь все) Спасибо
Офлайн