Альтернатива использованию механизма для извлечения данных?

В настоящее время я использую mechanize заполнить форму и отправить запрос POST, то я делаю regex поиск по ответу, чтобы получить данные (число с плавающей запятой).

Есть ли способ, которым я могу сделать это, просто отправив запрос POST? Я знаю, что это возможно, используя комбинацию инструментов разработчика любого браузера и requests модуль для отправки запроса, но мне не удалось найти всеобъемлющее руководство. Я также хотел бы получить некоторые подробности о шагах.

1 ответ

Решение

Первый шаг: получить имя поля

Проверьте код HTML и найдите name атрибут поля. Например, форма комментария на этой странице (в Chrome щелкните правой кнопкой мыши и выберите "проверить элемент"):

<textarea name="comment" cols="68" rows="3" 
placeholder="Use comments to ask for more information or 
suggest improvements. Avoid answering questions in comments."
></textarea>

Имя поля comment,

Шаг 2: собрать диктат name: value для каждого поля (включая скрытые входы)

Давайте назовем это данными:

data = {
   "comment": "this is a comment",
   "post_id": 1234
}

Шаг 3: используйте data аргумент

response = requests.post(url, data=data, cookies=cookies)

Более продвинутые вещи

Если ваша форма имеет file поля, возможно, вам придется проверить " Более сложные запросы POST" в документах. То же самое касается пользовательской аутентификации, обработки файлов cookie и т. Д.

Другие вопросы по тегам