Найти - Пользователи
Полная версия: Как получить html для парсинга если есть тэг form, и надо выбрать несколько опций
Начало » Python для новичков » Как получить html для парсинга если есть тэг form, и надо выбрать несколько опций
1
roggerg
Как получить страницу для парсинга если она формируется в зависимости от тэга option в тэге form.
Через requests.get() я получаю страницу с формами, которы надо как-то выбрать и отправить что-бы получить заданную страницу для последующего парсинга.

 <body>
<form>
    <select name="SelectId">
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
</form>
</body>

DamMercul
Для этого надо заранее сделать POST запрос с данными формы или открыть сессию, где тоже сделать POST.
 from socket import socket, gethostbyname
from bs4 import BeautifulSoup
# Допустим присылается твоя форма
# Нужно, чтобы выбрано было option со значением 2
req = \
b'''
GET /someform.html HTTP/1.1\r
Host: somesite.ru\r
User-Agent: SomeUserAgent/99.0 (XXX)\r
Cache-Control: no-cache\r
Content-Type: application/x-www-form-urlencoded
Content-Length: 10\r
\r
SelectId=1
'''
recvd = None
with socket() as sock:
    sock.connect((gethostbyname('www.somesite.ru'), 80))
    sock.send(req)  # отправляем запрос
    recvd = sock.recv(65535)
bss = BeautifulSoup(recvd.decode(), 'html.parser')
# Дальше сам
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB