Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2013 22:26:47

Kreol2013
Зарегистрирован: 2013-11-24
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

попытка передать post, первые шаги, реальная задача.

Доброго времени суток!
Господа, прошу вашей помощи.
Возникла необходимость спарсить словарь с сайта (прошу, дочитайте до конца.)
www.sanskrit-lexicon.uni-koeln.de
В основном задачи такого характера я пытаюсь решать через php + curl но данную задачу я не смог реализовать через него.
я попросил помощи на stackoverflow но …
Я попробовал написать на питоне

import urllib
import urllib2
headers = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'}
#POSTDATA=dictionary=cap&st=ja&prst=exact&en=&pren=exact&maxhits=50
values = {'dictionary' : 'cap' , 'st' : 'ja' , 'prst' : 'exact', 'en' : '', 'pren' : 'exact', 'maxhits' : '50'}
dataer = urllib.urlencode(values)
req = urllib2.Request('Referer=http://www.sanskrit-lexicon.uni-koeln.de/scans/MWScan/tamil/index.html', dataer, headers)
response = urllib2.urlopen(req)
print response.read()
но получаю одни ошибки
Сама суть задачи имея текстовый файл с значениями, подставлять их в параметр st
полученный html записывать в другой файл с дозаписью.
Буду очень благодарен за советы, либо решение.

Офлайн

#2 Ноя. 24, 2013 22:56:25

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

попытка передать post, первые шаги, реальная задача.

такого урла не бывает: 'Referer=http://www.sanskrit-lexicon.uni-koeln.de/scans/MWScan/tamil/index.html', уберите оттуда ‘Referer=’. И в следующий раз пишите, что именно за ошибка, если что

Офлайн

#3 Ноя. 24, 2013 23:18:49

Kreol2013
Зарегистрирован: 2013-11-24
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

попытка передать post, первые шаги, реальная задача.

Спасибо, не приметил сразу.
А не подскажите как нажать на кнопку, что-то не могу понять.
Потому что если я запускаю, а получаю код начальной страницы. а не конечной с результатом.

Отредактировано Kreol2013 (Ноя. 24, 2013 23:23:51)

Офлайн

#4 Ноя. 24, 2013 23:38:29

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

попытка передать post, первые шаги, реальная задача.

скачайте страницу и посмотрите чему равен “submit”, его допишите в values

Офлайн

#5 Ноя. 24, 2013 23:59:34

Kreol2013
Зарегистрирован: 2013-11-24
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

попытка передать post, первые шаги, реальная задача.

Простите за наглость, Вы имеете ввиду написать ‘submit’ : ‘Start search’?
перепробовал разные варианты, пока безрезультатно, все так же на главной странице

import requests
values = {'dictionary' : 'cap' , 'st' : 'ja' , 'prst' : 'exact', 'en' : '', 'pren' : 'exact', 'maxhits' : '50', 'submit' : 'Start search'}
response = requests.post('http://www.sanskrit-lexicon.uni-koeln.de/scans/MWScan/tamil/index.html', data=values)
print response.text

Отредактировано Kreol2013 (Ноя. 25, 2013 00:02:11)

Офлайн

#6 Ноя. 25, 2013 01:04:18

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

попытка передать post, первые шаги, реальная задача.

ну так вы не туда шлете, вот на этой странице найдите строки method=POST action=“/бла/бла”, вот этот action и надо приклеить к корневому урл, т.е. к 'http://www.sanskrit-lexicon.uni-koeln.de' в вашем случае

Офлайн

#7 Ноя. 25, 2013 01:08:28

Kreol2013
Зарегистрирован: 2013-11-24
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

попытка передать post, первые шаги, реальная задача.

мда… буду внимательней пользоватся снифером. Спасибо.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version