python, запросы, lxml: имитация изменения табуляции в сетке css

#python #xpath #web-scraping #python-requests #lxml

#python #xpath #веб-очистка #python-запросы #lxml

Вопрос:

Я работаю с запросами и lxml для извлечения данных из thesaurus.com

Возьмем этот URL-адрес для примера: https://www.thesaurus.com/browse/mass

Я могу получить то, что хочу, с помощью этого кода:

   url = 'https://www.thesaurus.com/browse/'   'mass'
  r = requests.get(url)
  tree = lxml.html.fromstring(r.content)
  raw_syn_list = tree.xpath('//h2[text()="other words for "]/following-sibling::ul//text()')
 

Но я не могу понять, как получить доступ ко второму смыслу массы программно. Он организован на сайте как еще одна вкладка над сеткой синонимов.

изображение вкладок

Когда вы нажимаете вкладку на сайте, соответствующий html-элемент заменяется. Я предполагаю, что это происходит где-то в функции javascript, но, похоже, я не могу ее найти.

Комментарии:

1. Если я вас правильно понял: вы хотите удалить слова из второй вкладки в разделе bulk, measurement ?

2. Это верно. Документ html, возвращенный из requests.get (url), содержит только слова из первой вкладки. Итак, я пытаюсь выяснить, как имитировать изменение табуляции или получить к ним доступ каким-либо другим способом.

Ответ №1:

Глядя на поведение в инструментах разработчика браузера, вся страница перезагружается. После нажатия на вкладку повторно запустите код, который загружает определения, рассматривая его как новую страницу, и не используйте повторно ваши предыдущие экземпляры webelement. В приведенном выше примере кода,

  • нажмите вкладку
  • повторите все, начиная с requests.getURL() и далее, с разными именами переменных, которые должны предоставить вам новое содержимое.