Форум сайта python.su
0
Есть!!!
форма отправлена нормально, но все равно не строиться таблица
.
вот код
from bs4 import BeautifulSoup from urllib.parse import urlencode import urllib.request def get_html(): form_data = {'station_id_from': '2200001', 'station_id_till': '2208536', 'station_from': 'Киів', 'station_till': 'Миколаів Пас', 'date_dep': '21.08.2015', 'time_dep': '00:00', 'time_dep_till': '', 'another_ec': '0', 'search': ''} params = urllib.parse.urlencode(form_data) params = params.encode('UTF-8') response = urllib.request.urlopen('http://booking.uz.gov.ua/', params) return response.read() def parse(html): soup = BeautifulSoup(html) table = soup.find('table', class_='vToolsDataTable') '''projects = [] for row in table.find_all('tr'): cols = row.find_all ('td') projects.append( { 'title': cols[0].a.text }) for project in projects: print (project)''' print (table) def main(): parse (get_html()) if __name__=='__main__': main()
Отредактировано malkir (Июль 16, 2015 12:25:10)
Офлайн
0
Я попробовал вывести params и получил кракозябли, поробовал form_data и получил нормальный текст. Есть способ вернуть читабельный текст в params?? Но на сайт приходит нормально читабельно Оо . Ну и ладно, хотя не понятно.
Отредактировано malkir (Июль 16, 2015 16:49:54)
Офлайн
33
py.user.next
Как ты узнал, что в любом браузере тебе показывают всё?
Budulianin
Да в любом браузере есть возможность запросы просмотреть)
Офлайн
0
Budulianin
А что по моему коду? Чего может не создаваться таблица? Она создается только после ввода данных в форму. Я их переслал но таблица не построена
Офлайн
857
BudulianinТам не только посмотреть надо, но и скопировать точно.
достаточно посмотреть куда идут запросы и что в них отправляется
BudulianinБраузер не обязан это всё делать. Если он покажет что-нибудь неправильно (ну, там не всё или не в том порядке), то это не считается нарушением его функции.
Тут всё и не надо
malkir
Но на сайт приходит нормально читабельно Оо . Ну и ладно, хотя не понятно.
malkirЧто отвечает сайт на запрос?
Чего может не создаваться таблица?
Офлайн
0
py.user.next
Сам скрипт пишет None а Wireshark то что на скрине.
Прикреплённый файлы:
11.jpg (503,7 KБ)
Офлайн
857
Для начала просто выведи текст на экран, без разбора. Убедись, что там таблица есть. А дальше отдельно для текста можешь подбирать правильный разбор.
Офлайн
33
py.user.nextOMG, парочка заголовков. Тебе их сложно скопировать из консоли? Может ты ей просто не умеешь пользоваться?)
Там не только посмотреть надо, но и скопировать точно.
py.user.next
Браузер не обязан это всё делать. Если он покажет что-нибудь неправильно (ну, там не всё или не в том порядке), то это не считается нарушением его функции.
malkirКакая ещё таблица? Видимо ты не понимаешь, что есть серверные приложения,
А что по моему коду? Чего может не создаваться таблица?
{'Origin': 'http://booking.uz.gov.ua', 'Content-Length': 202, 'Accept-Encoding': 'gzip, deflate', 'Content-type': 'application/x-www-form-urlencoded', 'GV-Unique-Host': 1, 'GV-Ajax': 1, 'Accept': '*/*', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36', 'GV-Screen': '1440x900', 'Connection': 'keep-alive', 'Cookie': '_gv_sessid=ega79pca50fjtpv4r02f2ul0p1; _gv_lang=uk; HTTPSERVERID=server2; __utma=31515437.727071730.1436907395.1437117867.1437123736.3; __utmb=31515437.2.10.1437123736; __utmc=31515437; __utmz=31515437.1437123736.3.3.utmcsr=python.su|utmccn=(referral)|utmcmd=referral|utmcct=/forum/topic/27685/', 'GV-Referer': 'http://booking.uz.gov.ua/', 'GV-Token': '092add0b9ab4a37f3b3a4e6c525ce2f7', 'GV-Referer-Src': 'http://python.su/forum/topic/27685/?page=1'}
{'another_ec': 0, 'date_dep': u'24.07.2015', 'search': '', 'station_from': u'\u041a\u0438\u0457\u0432', 'station_id_from': 2200001, 'station_id_till': 2208001, 'station_till': u'\u041e\u0434\u0435\u0441\u0430', 'time_dep': u'00:00', 'time_dep_till': ''}
url = 'http://booking.uz.gov.ua/purchase/search/'
In [142]: requests.post(url, data=data, headers=h) Out[142]: <Response [200]>
In [145]: r.content Out[145]: '{"value":[{"num":"761\\u041b","model":3,"category":1,"from":{"station_id":"2200001","station":"\\u041a\\u0438\\u0457\\u0432-\\u041f\\u0430\\u0441\\u0430\\u0436\\u0438\\u0440\\u0441\\u044c\\u043a\\u0438\\u0439","date":1437707520,"src_date":"2015-07-24 06:12:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437732360,"src_date":"2015-07-24 13:06:00"},"types":[{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u043f\\u0435\\u0440\\u0448\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04211","places":124},{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u0434\\u0440\\u0443\\u0433\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04212","places":283}]},{"num":"761\\u0428","model":3,"category":1,"from":{"station_id":"2200001","station":"\\u041a\\u0438\\u0457\\u0432-\\u041f\\u0430\\u0441\\u0430\\u0436\\u0438\\u0440\\u0441\\u044c\\u043a\\u0438\\u0439","date":1437707520,"src_date":"2015-07-24 06:12:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437732360,"src_date":"2015-07-24 13:06:00"},"types":[{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u0434\\u0440\\u0443\\u0433\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04212","places":29}]},{"num":"023\\u041c","model":0,"category":0,"from":{"station_id":"2200001","station":"\\u041c\\u043e\\u0441\\u043a\\u0432\\u0430 \\u041a\\u0438\\u0435\\u0432\\u0441\\u043a\\u0430\\u044f","date":1437722340,"src_date":"2015-07-24 10:19:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437758820,"src_date":"2015-07-24 20:27:00"},"types":[{"title":"\\u041a\\u0443\\u043f\\u0435","letter":"\\u041a","places":5},{"title":"\\u041f\\u043b\\u0430\\u0446\\u043a\\u0430\\u0440\\u0442","letter":"\\u041f","places":16}]},{"num":"763\\u041a","model":3,"category":1,"from":{"station_id":"2200001","station":"\\u0414\\u0430\\u0440\\u043d\\u0438\\u0446\\u044f","date":1437745140,"src_date":"2015-07-24 16:39:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437769980,"src_date":"2015-07-24 23:33:00"},"types":[{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u043f\\u0435\\u0440\\u0448\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04211","places":118},{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u0434\\u0440\\u0443\\u0433\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04212","places":264}]},{"num":"763\\u041e","model":3,"category":1,"from":{"station_id":"2200001","station":"\\u0414\\u0430\\u0440\\u043d\\u0438\\u0446\\u044f","date":1437745140,"src_date":"2015-07-24 16:39:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437769980,"src_date":"2015-07-24 23:33:00"},"types":[{"title":"\\u0421\\u0438\\u0434\\u044f\\u0447\\u0438\\u0439 \\u0434\\u0440\\u0443\\u0433\\u043e\\u0433\\u043e \\u043a\\u043b\\u0430\\u0441\\u0443","letter":"\\u04212","places":80}]},{"num":"221\\u041a","model":0,"category":0,"from":{"station_id":"2200001","station":"\\u041a\\u0438\\u0457\\u0432-\\u041f\\u0430\\u0441\\u0430\\u0436\\u0438\\u0440\\u0441\\u044c\\u043a\\u0438\\u0439","date":1437757020,"src_date":"2015-07-24 19:57:00"},"till":{"station_id":"2208001","station":"\\u041e\\u0434\\u0435\\u0441\\u0430-\\u0413\\u043e\\u043b\\u043e\\u0432\\u043d\\u0430","date":1437790320,"src_date":"2015-07-25 05:12:00"},"types":[{"title":"\\u041b\\u044e\\u043a\\u0441","letter":"\\u041b","places":2}]}],"error":false,"data":null}'
Офлайн
857
BudulianinДа плохо сделана она. Она и не обязана быть хоть сколько-нибудь хорошей, потому что функция браузера заключается в просмотре страниц.
Тебе их сложно скопировать из консоли? Может ты ей просто не умеешь пользоваться?)
BudulianinКонсоль - это дополнение к браузеру, которое можно писать, можно не писать. Поэтому и делается она абы как.
А консоль это средство для РАЗРАБОТЧИКОВ, которые разрабатывают приложения для браузера.
BudulianinТы, наверное, не в курсе, но там есть фильтр. Я думаю, ты просто не знаешь потенциал фильтров в Wireshark, потому что он слишком сложен для тебя.
Нас интересует HTTP слой, ниже нам не нужно, поэтому wireshark тут ВООБЩЕ не нужен.
Отредактировано py.user.next (Июль 18, 2015 02:24:00)
Офлайн
33
py.user.next
Да плохо сделана она. Она и не обязана быть хоть сколько-нибудь хорошей,
py.user.nextАбы как она не делается, потому что её используют разработчики.
Консоль - это дополнение к браузеру, которое можно писать, можно не писать. Поэтому и делается она абы как.
py.user.nextНам просто нужно решить задачу, если у тебя chrome, то всё Ок. Другие браузеры и рассматривать не нужно.
Вот здесь ещё можно накопать что-то специализированное, но речь идёт о единообразном решении для всех браузеров.
py.user.nextЕсли он неправильно работает, то я по работе скрипта это увижу)
Да, кстати, если скрипт неправильно работает, то увидеть ты это сможешь тоже только через Wireshark, консоль от браузера тут не поможет.
py.user.nextВ курсе) в курсе)
Ты, наверное, не в курсе, но там есть фильтр.
py.user.next:)
Я думаю, ты просто не знаешь потенциал фильтров в Wireshark, потому что он слишком сложен для тебя.
py.user.nextДа, очень сложный :) Так же как и для тебя консоль браузера
Он слишком сложный для тебя => ты его не юзаешь часто => не знаешь, как пользоваться фильтрами. :)
Офлайн