malkirПоставь Wireshark, заполни и посмотри, что отправляется.
Вот собственно вопрос: чем можно и можно ли вообще заполнить поля для последующего парсела страницы?
. К сайту у меня только пользовательский доступ, и как мне эта программа поможет перед парселом заполнить форму для поиска?
malkirФорма просто собирает введённые данные и составляет запрос с ними для отправки на сервер. Задача скрипта заключается в том, чтобы сразу составить запрос. А для этого надо узнать его структуру, которую обычно видно через сниффер.
и как мне эта программа поможет перед парселом заполнить форму для поиска?
py.user.nextWireshark это overhead, достаточно просто в консоли браузера посмотреть запросы.
Поставь wireshark, заполни и посмотри, что отправляется.
. Теперь чем я могу их задать при парселе? Всмысле чтобы была построенна таблица сначала нужно используя эту структуру задать параметры для поиска. А как это сделать? Я так понимаю нужно сделать отдельный скрипт который будет это делать или можно все в один скрипт поместить? И чем эможно такое заполнение реализовать?
BudulianinБраузеры все разные, а Wireshark - не только один, но и показывает всё.
Wireshark это overhead, достаточно просто в консоли браузера посмотреть запросы.
malkirНе парселе, а парсинге.
чем я могу их задать при парселе?
malkirВот позадавай их разные, и посмотри, что отправляется при этом.
чтобы была построенна таблица сначала нужно используя эту структуру задать параметры для поиска. А как это сделать?
>>> import urllib.parse >>> >>> urllib.parse.urlencode({'a': 'b', 'c': 'd'}) 'c=d&a=b' >>>
py.user.next
Браузеры все разные, а Wireshark - не только один, но и показывает всё.
.from bs4 import BeautifulSoup from urllib.parse import urlencode import urllib.request def getSerch(): baseurl='http://booking.uz.gov.ua/' wert = {'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': ''} return (baseurl, urlencode(wert)) def get_html(url): response = urllib.request.urlopen(url) 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('http://booking.uz.gov.ua/')) if __name__=='__main__': main()
BudulianinКак ты узнал, что в любом браузере тебе показывают всё?
Да в любом браузере есть возможность запросы просмотреть)
malkirНет пост-запроса. Когда запускаешь скрипт, смотри так же через сниффер, что отправляется, равно ли оно тому же, что отправляет браузер.
может подскажете что?