Найти - Пользователи
Полная версия: Вход на сайт и чтение его html кода
Начало » Python для экспертов » Вход на сайт и чтение его html кода
1
Gecko
Здравствуйте, друзья. Подскажите, пожалуйста, можно ли средствами 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({}))
но остальное…
Помогите, пожалуйста
funnyman
Если хочется сделать работу прозрачнее и нет необходимости работать на уровне urllib2 то посоветую модуль Grab, по средствам grab объекта вы сможете делать все что вам нужно и даже больше, есть документация на русском
GaiveR
Используйте 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
но остальное…
Помогите, пожалуйста
Что конкретно вам не понятно?
Gecko
GaiveR Теперь все понятно. Ну почти. requests.Session().post(adress, data) не совсем понял, что произошло. Что должно быть в этом словаре? переменные, как они называются в коде страницы?
Gecko
Да, а еще возник вопрос - как триггернуть кнопку на странице?
GaiveR
Gecko
Что должно быть в этом словаре? переменные, как они называются в коде страницы?
В data должны быть параметры post-запроса. Посмотреть их в коде страницы можно, но удобнее делать это в сниффере (fiddler2, TamperData в firefox и др.)

Gecko
Да, а еще возник вопрос - как триггернуть кнопку на странице?
Триггернуть = нажать?
Нажмите на кнопку, посмотрите в сниффере какие запросы отправляются, повторите их с помощью requests/grab
Gecko
GaiveRТеперь все) Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB