Соскоб в сети - Требуется пароль | Python, BeautifulSoup, запросы - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь выполнить очистку веб-страниц, используя Python, beatifulsoup и запросы. Сначала мне нужно войти на страницу, а затем запросить следующую страницу, с которой я хотел бы выполнить очистку веб-страниц.

Я могу сказать, что я успешно вошел в систему, поскольку код состояния равен 200. Однако когда я запрашиваю на следующей странице после входа в систему я не получаю весь контент.

В частности, я получаю эту строку вместо нескольких вложенных элементов div. <div id="app"></div> фактический контент выглядит следующим образом. enter image description here

Мой код следующий. Я хотел бы спросить вас, не пропустил ли я что-нибудь, чтобы получить все вложенные элементы div.

import requests
from bs4 import BeautifulSoup
import html5lib
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}

login_data = {
    'username': 'username',
    'password': 'password',
    'sp-login': 'false'
}

with requests.Session() as s:
    url = "https://api.private.zscaler.com/base/api/zpa/signin"
    r = s.get(url, headers=headers)
    soup = BeautifulSoup(r.content, 'html5lib')

    r = s.post(url, data=login_data, headers= headers)
    print(r.content)
    print(r.ok)
    print(r.status_code)

    r2 = requests.get("https://admin.private.zscaler.com/#dashboard/usersDashboard")
    print(r2.text)

1 Ответ

0 голосов
/ 11 апреля 2020

Веб-приложение, которое вы пытаетесь удалить, может представлять собой SPA (одностраничное приложение), созданное с использованием чего-то вроде React \ Vue \ Angular.

BeautifulSoup в этом случае не будет работать, поскольку вам нужно запустить javascript на странице, чтобы построить DOM.

Вы должны использовать что-то вроде Selenium для достижения sh этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...