Найти - Пользователи
Полная версия: попытка передать post, первые шаги, реальная задача.
Начало » Центр помощи » попытка передать post, первые шаги, реальная задача.
1
Kreol2013
Доброго времени суток!
Господа, прошу вашей помощи.
Возникла необходимость спарсить словарь с сайта (прошу, дочитайте до конца.)
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 записывать в другой файл с дозаписью.
Буду очень благодарен за советы, либо решение.
dimy44
такого урла не бывает: 'Referer=http://www.sanskrit-lexicon.uni-koeln.de/scans/MWScan/tamil/index.html', уберите оттуда ‘Referer=’. И в следующий раз пишите, что именно за ошибка, если что
Kreol2013
Спасибо, не приметил сразу.
А не подскажите как нажать на кнопку, что-то не могу понять.
Потому что если я запускаю, а получаю код начальной страницы. а не конечной с результатом.
dimy44
скачайте страницу и посмотрите чему равен “submit”, его допишите в values
Kreol2013
Простите за наглость, Вы имеете ввиду написать ‘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
dimy44
ну так вы не туда шлете, вот на этой странице найдите строки method=POST action=“/бла/бла”, вот этот action и надо приклеить к корневому урл, т.е. к 'http://www.sanskrit-lexicon.uni-koeln.de' в вашем случае
Kreol2013
мда… буду внимательней пользоватся снифером. Спасибо.
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