Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2018 03:08:49

roggerg
Зарегистрирован: 2015-03-12
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Как получить html для парсинга если есть тэг form, и надо выбрать несколько опций

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

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

Офлайн

#2 Окт. 20, 2018 21:24:33

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Как получить html для парсинга если есть тэг form, и надо выбрать несколько опций

Для этого надо заранее сделать 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')
# Дальше сам



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Окт. 20, 2018 21:25:17)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version