#python #web-scraping #beautifulsoup #python-requests
#python #очистка веб-страниц #beautifulsoup #python-запросы
Вопрос:
Я новичок в веб-очистке и не очень знаком с запросами и BeautifulSoup.
Я пытаюсь очистить веб-сайт aspx с помощью BeautifulSoup. Но чтобы получить значения, которые я хочу очистить, мне сначала нужно выбрать выпадающее значение, ввести идентификатор, а затем нажать отправить.
Возможно ли это вообще?
Любая помощь была бы очень признательна!
Комментарии:
1. Selenium был бы лучше для вашего варианта использования
2. Можете ли вы поделиться URL-адресом и значениями, которые вы хотите отправить?
Ответ №1:
Возможно, попробуйте ввести URL-адрес, который вы получите после того, как сделаете все выборки из выпадающих списков. В противном случае .. лучше всего использовать Selenium.
Ответ №2:
Как уже упоминалось selenium
, это мощный инструмент при работе с веб-сайтами такого рода, но это не единственное решение вашей проблемы.
Исходя из информации, которую вы предоставили в своем вопросе, я предполагаю, что на рассматриваемой странице представлена форма, вы заполняете ее, выбирая желаемые значения в выпадающем списке, а затем нажимая submit
кнопку.
Если это так, то в процессе задействован POST
запрос (более подробная информация здесь). Вы можете легко проверить данные запросов, а затем воспроизвести их с помощью python
.
Руководство пользователя Chrome:
-
Нажмите F12 на соответствующей странице. Должна появиться консоль разработчика.
-
Установите флажки
Preserve Log
иDisable Cache
в верхнем левом углу -
Заполните данные формы необходимой информацией и нажмите
submit
кнопку. -
Прокрутите окно запроса вниз, пока не найдете
Form Data
раздел -
Это данные, которые вам нужно реплицировать. Скорее всего, среди них выбранное выпадающее значение.
-
Теперь
python
часть
import requests
url = 'https://formsmarts.com/html-form-example' # extract the URL from the <form> tag
data = {
'u_omM_4607': 'John',
'u_omM_338354': 'Doe',
'u_omM_4608': 'john.doe@email.com',
'u_omM_338367': 'Support Inquiry', # this was from a dropdown
'u_omM_4609': 'No comments'
}
r = requests.post(url, data=data) # send a POST request with the completed data
print(r.text) # r.text is the HTML information of the response which can be scraped at your own will
Надеюсь, это хотя бы немного отвечает на ваши вопросы. Не стесняйтесь отвечать дополнительными вопросами, если это необходимо.