Альтернатива использованию механизма для извлечения данных?
В настоящее время я использую 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 и т. Д.