Как отправить POST запрос с параметрами?
Хочу спарсить ссылки на гугл миты из сайта своего универа.
Как отправить POST запрос на страницу?
Нужно ввести группу, в моем случае "КІ-19-1", и в ответ получить HTML код с расписанием.
Дальше я уже справлюсь с BS4.
Что-то пробовал написать, но в ответ нет ответа от формы:
import requests
import fake_useragent
link = "https://dekanat.nung.edu.ua/cgi-bin/timetable.cgi/post"
pload = {'group':'КІ-19-1'}
user_agent = {
"User_Agent":fake_useragent.UserAgent().random
}
r = requests.post(link,params=pload,headers = user_agent)
print(r.text)
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
Адрес, с которого приходят данные, немного отличается. Попробуйте:
import requests
from bs4 import BeautifulSoup
url = 'https://dekanat.nung.edu.ua/cgi-bin/timetable.cgi?n=700'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}
payload = {
'faculty': '0',
'teacher': '',
'group': 'ʲ-19-1',
'sdate': '',
'edate': '' ,
'n': '700'
}
r = requests.post(url, headers=headers, data=payload)
soup = BeautifulSoup(r.content, 'html.parser')
таблицы в супе:
tables = soup.find_all('div', class_='col-md-6')
for table in tables[1:]:
print(table.find('h4').text)
выведет:
04.06.2021 П'ятниця
07.06.2021 Понеділок
08.06.2021 Вівторок
09.06.2021 Середа
11.06.2021 П'ятниця
попробуйте искать ссылки как-то так:
table.find('a')['href']
UPD обратите внимание: ваша группа передается как 'group': 'ʲ-19-1', а не 'КІ-19-1' (пока не выяснил связи, но - как есть)