MechanicalSoup перейдите по ссылке без внутренней кнопки - PullRequest
0 голосов
/ 16 декабря 2018

Я пишу приложение, которое удаляет некоторые данные из Интернета, используя MechanicalSoup .Я уже рассмотрел процесс login и т. Д. Страница, на которой я заканчиваю, содержит таблицу html.Проблема в том, что данные неполные.Там есть кнопка Show more, которая позволяет пользователю отображать полные данные.Вот как это выглядит (под Inspect):

<a class="text-white btn btn-success" href="#" id="expand" style="margin-bottom:30px;">Show more</a>

Я знаю, что он вызывает функцию jQuery.Проблема в том, что, конечно, MechanicalSoup не может щелкнуть по нему, он может только перейти по своей ссылке.

Используя этот код, я могу найти эту ссылку:

l = browser.find_link(id='expand')
print(type(l), l)
print(browser.follow_link(l))

print(browser.get_url())

Я могу определить, чтоэто bs4.Element.Tag но когда я хочу следовать за ним (ответ 200, так что я думаю, что это хорошо) - это не следует за ним.В основном это добавило бы # к URL-адресу страницы, и после прочтения текста страницы я заметил бы разницу (или я даже попытался launch_browser() - она ​​также отображает неполную таблицу):

<class 'bs4.element.Tag'> <a class="text-white btn btn-success" href="#" id="expand" style="margin-bottom:30px;">Show more</a>
<Response [200]>
<page_url_without_#_at_the_end>

Есть личто я делаю не так?Или невозможно перейти по такой ссылке с этой библиотекой?

...