#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() и далее, с разными именами переменных, которые должны предоставить вам новое содержимое.