python urlopen: только первый атрибут URL-адреса берется через данные

Я пытаюсь удалить веб-сайт. Он состоит из футбольного веб-сайта, на котором перечислены все матчи всех сезонов. Итак, я пытаюсь удалить html-страницы каждой игры каждого сезона. Вот URL: http://www.lfp.fr/ligue1/calendrier_resultat#sai=77&jour=1

Что я делаю:

url = 'http://www.lfp.fr/ligue1/calendrier_resultat#'
data = {'sai':77,'jour':10}
url_values = urlencode(data)
response = urlopen(url,url_values)
soup = BeautifulSoup(response)

сай это сезон, а джур это неделя

проблема в том, что указанная страница зависит только от значения «sai», независимо от того, чему равно «jour», она всегда будет возвращать одну и ту же страницу, и это всегда будет последняя неделя.

Например, я могу ввести такой URL-адрес: http://www.lfp.fr/ligue1/calendrier_resultat#sai=77OUHIGYGO8TY98 Ему все равно, что будет после sai=77. Я не знаю, почему это происходит, и мне действительно нужна помощь. Спасибо


person Benjamin Fabiano    schedule 10.12.2016    source источник
comment
Сервер, вероятно, игнорирует что-либо после #, поэтому я был бы удивлен, если бы какой-либо из этих двух параметров имел значение в URL-адресе. Но я также думаю, что вы POST передаете эти данные как форму url, а не просто получаете этот URL. В любом случае, похоже, что контент загружается динамически с использованием javascript, поэтому вам следует использовать селен. Хороший шанс!   -  person Alex Hall    schedule 10.12.2016
comment
О, я слышал о селене. Думаю, я тоже обдумаю это. Большое спасибо !   -  person Benjamin Fabiano    schedule 10.12.2016


Ответы (1)


Благодаря ответам некоторых других сообщений stackoverflow я наконец решил проблему.

Проблема здесь заключалась в том, что часть URL-адреса после # является клиентской частью, которая никогда не отправляется на сервер. На самом деле существует настоящий URL-адрес, который отправляется на сервер, и я нашел его с помощью Mozilla: вы просто заходите в инструменты разработчика и переходите на вкладку сети. Прокрутите элементы вкладки с левой стороны, и для каждого элемента вы увидите соответствующий «URL-адрес запроса». Если вы обратите внимание, вы найдете нужный элемент, URL-адрес запроса которого похож на URL-адрес с символом #. Просто скопируйте и вставьте его, и ваша проблема будет решена.

person Benjamin Fabiano    schedule 10.12.2016