Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: Web
Войти
Регистрация
Восстановить пароль
 
SonicView
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 13
1

Метод Post для навигации по сайту

08.03.2016, 01:33. Просмотров 393. Ответов 5
Метки нет (Все метки)

пытаюсь на питоне3 написать сборщик данных с сайта
Есть сайт
когда на нем в дропдаун меню выбираешь вчерашний день происходит отправка следующего поста

__EVENTTARGET ctl00$MainTop$GenericControl7$ucfad306a356a2431a97c7423d9ff6316a$ddlPlayDate
__EVENTARGUMENT
__LASTFOCUS
__VIEWSTATE *очень длинная строка - не проходит по символам*
__VIEWSTATEGENERATOR F048F626
ctl00$ctl06$sm
ctl00$MainTop$GenericControl7$ucfad306a356a2431a97c7423d9ff6316a$ddlPlayDate 3/6/2016


подскажите каким образом я могу сделать автоматизацию перехода на вчерашний день?

проблем с открытием и сбором информации нет просто не могу понять как сделать такой переход
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2016, 01:33
Ответы с готовыми решениями:

Скрипт для навигации по сайту
Здравствуйте, питон 3 + селениум, (толком даже синтаксис не знаю) но очень...

Передавать POST параметры при навигации по сайту
Всем привет! Есть страничка с формой авторизации (выбор логина, ввод пароля)...

Программа для навигации по сайту
Нужно написать программу для навигации по сайта Работа: 1. Открываем барузер...

[Synapse] Не вызывается post-метод к сайту по https из созданного компонента
Доброго времени суток! Такая проблема: делаю post-метод к сайту по https, весь...

Как изменить размещение навигации по сайту
Подскажите как изменить размещение навигации по сайту(подвинуть немного вправо)

5
Jabbson
Эксперт по компьютерным сетям
3348 / 2423 / 746
Регистрация: 03.11.2009
Сообщений: 7,759
Записей в блоге: 3
08.03.2016, 11:13 2
попробуйте посылать пост реквест на http://www.htzfm.com/broadcasthistory.aspx
c
ctl00$MainTop$GenericControl7$ucfad306a356a2431a97c7423d9ff6316a$ddlPlayDate
и
длинной строкой.
0
SonicView
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 13
08.03.2016, 16:49  [ТС] 3
Проблема в том что __VIEWSTATE при каждом запросе разная строка при этом __VIEWSTATEGENERATOR одинаковый всегда. Я не понимаю откуда и как взять эти данные
0
Jabbson
Эксперт по компьютерным сетям
3348 / 2423 / 746
Регистрация: 03.11.2009
Сообщений: 7,759
Записей в блоге: 3
08.03.2016, 17:48 4
Цитата Сообщение от SonicView Посмотреть сообщение
Проблема в том что __VIEWSTATE при каждом запросе разная строка
каким образом это проблема? с одинаковой строкой не работает?

Добавлено через 15 минут
Хотите динамически - берите из страницы value у input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
0
SonicView
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 13
09.03.2016, 04:29  [ТС] 5
мб проблема не в этом, я честно не знаю
в данный момент патаюсь сделать так

Python
1
2
3
4
5
6
7
8
   
import urllib.request
import requests
 
var1 = 'ctl00$MainTop$GenericControl7$ucfad306a356a2431a97c7423d9ff6316a$ddlPlayDate'
longvar = [S]*тот самый набор символов*[/S]
page1 = urllib.request.urlopen('http://www.htzfm.com/broadcasthistory.aspx')
page = requests.post(page1, data = {'__EVENTTARGET': var1, '__EVENTARGUMENT': '', '__LASTFOCUS': '', '__VIEWSTATE': longvar, '__VIEWSTATEGENERATOR':    'F048F626', var1: yesterday})
yesterday это уже подготовленная переменная с датой в нужном формате
на что получаю ответ что requests.exceptions.MissingSchema

пытаюсь сделать по документации
0
Jabbson
Эксперт по компьютерным сетям
3348 / 2423 / 746
Регистрация: 03.11.2009
Сообщений: 7,759
Записей в блоге: 3
09.03.2016, 09:55 6
Цитата Сообщение от SonicView Посмотреть сообщение
пытаюсь сделать по документации
это какая интересно документация учит использовать одновременно urllib и requests?..

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import requests
from lxml import html
 
init_r = requests.get('http://www.htzfm.com/broadcasthistory.aspx')
VIEWSTATE = html.fromstring(init_r.content).cssselect('input#__VIEWSTATE')[0].get('value')
CTL00MAIN = html.fromstring(init_r.content).cssselect('select')[0].get('name')
 
data = {CTL00MAIN: '3/9/2016', '__VIEWSTATE': VIEWSTATE}
 
r = requests.post('http://www.htzfm.com/broadcasthistory.aspx', data=data)
page = html.fromstring(r.content)
tracks = [x for x in page.cssselect('.songList tr')]
 
for track in tracks:
    time, name, _ = [x for x in track.cssselect('td')]
    print('{} : {}'.format(time.text.strip(), name.text_content().strip()))
0
09.03.2016, 09:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2016, 09:55

Пропадают POST-данные при постраничной навигации
Здравствуйте. На странице есть форма, которая служит фильтром для запроса в...

метод POST для php-странички...
Господа, доброго времени суток! Прошу помощи, т.к. с клиент-серверными...

Post запрос к сайту
Привет всем. Помогите разобраться с проблемой. А собственно суть вот в чем: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru