BeautifulSoup не анализирует все элементы (содержимое) после использования запроса на вход в сеанс - PullRequest
0 голосов
/ 30 мая 2019

Я могу войти в сеанс, используя запрос.

Я думаю, что я прав, потому что содержимое анализируемого HTML-кода показывает результат после того, как я вручную проверил страницу.Вот то, над чем я работал до сих пор.

import requests
from bs4 import BeautifulSoup as bs
import lxml
from selenium import webdriver
import time

### login website

### try
login_url='https://loancare.wd.lendingsvcs.com/smagent/forms/DynamicRetry.lfcc?SMQUERYDATA=-SM-YqDWGVYPqWY8B5OeWH3aAAimesXFQJ%2fJZl7sRyuKfOaqsAKdA%2fdfrgNl5ApC3q62OYvR98r%2fBHIytJa3QlVruC7F0wmsqUXFk4lh9whGJQFJPsLSSZE1suQW3mFFgRjDcwCPdEunMEwu%2fvEglLGa1W5z5Oq8ww53oXmtxyW2hfl3mI%2foNTbyya4DpptRTu5rLC1QthHeCjvmU8Ss5PumMI96cTCefMdmFwowyYDGKMkK76h9FIe8BJFwoBECSWPsnUOK0YEAMM4XFEh6yyaJcurlgzrnWhUOjVMw9gcBwaEqw3Y0gFyT0JZ6LpjkrG%2fNfauWm8%2fdU7R6W20WHCwUUAObQgRTxBsxooG2u37kzQ%2b7vzUcgmNwoi551t27rG1zhJbFOQAh42ZfujyTiAeuveIH5uyH0C4YK%2fn5YSh5LGQ6GaCpnZR0cj7T%2b965f8f3'

### fill in headers
headers = {
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}

### find hidden input tags
r = requests.get(login_url, headers=headers)
soup = bs(r.text)
itags = soup.find_all(name="input")
for tag in itags:
    print(tag)
print('\n')

### account info
username = 'myusername'
password = 'mypassword'


### fill in input tags
data = {    
"USERINPUT":username,
"PASSWORD":password,
"SMENC":"ISO-8859-1",
"SMLOCALE":"US-EN",
"UserCompany":"loancare",
"USER": "carrie.mcgahan,o=loancare",
"smauthreason":"0",
"smagentname":"sKydreaDKgXaN3m7DBUPd3z8oTpsSTRHjK/Eb2ArY4ip5nyfodVHKy8fvnIR3ghL",
"postpreservationdata":""
     }

### start session.
session = requests.session()

### login
r = session.post(url=login_url, headers= headers, data=data)
# print(r.url)
print('\n')

### try one link first
scrape_url ='https://loancare.wd.lendingsvcs.com/webdirect/WebDirect.html#taskListView?loanNumber=24832974&clientId=623&providerName=loancare&systemId=prod'

### request page want to scrape.
url = session.get(url=scrape_url, headers=headers, allow_redirects=False)
time.sleep(10)

print(url.status_code)
print('\n')

print(url.url)
print('\n')

print(url.content)
print('\n')

soup = bs(url.text,'lxml')
print(soup)

print('finished')


session.close()

Проблема в том, что проанализированная страница не показывает все теги, но показывает части тегов ниже.

<!DOCTYPE html>
<html>

<head>
<title>Web Direct</title>
<meta content="no-cache" http-equiv="Pragma" />
<meta content="-1" http-equiv="Expires" />
<meta content="-1;URL=../index.html" http-equiv="Refresh" />
<meta content="IE=11" http-equiv="X-UA-Compatible" />
<link href="webdirect/reset.css" rel="stylesheet" type="text/css" />
<link href="css/gxt-all.css" rel="stylesheet" type="text/css" />
<link href="WebDirectApp.css" rel="stylesheet" type="text/css" />
<link href="images/favicon.ico" rel="icon" type="image/x-icon" />
<link href="images/favicon.ico" rel="shortcut icon" type="image/x-icon" 
/>
</head>
<style>
* {
    margin: 0px;
    padding: 0px;
}

#loading {
    position: absolute;
    left: 45%;
    top: 40%;
    margin-left: -45px;
    padding: 2px;
    z-index: 20001;
    height: auto;
    border: 1px solid #ccc;
}

#loading a {
    color: #225588;
}

#loading .loading-indicator {
    background: white;
    color: #444;
    font: bold 13px tahoma, arial, helvetica;
    padding: 10px;
    margin: 0;
    height: auto;
}

#loading .loading-indicator img {
    margin-right: 8px;
    float: left;
    vertical-align: top;
}

#loading-msg {
    font: normal 10px arial, tahoma, sans-serif;
}

<body style="overflow: hidden">
<div id="loading">
    <div class="loading-indicator" style="text-align: center;"><img height="32" src="images/default/shared/large-loading.gif" style="margin-right:8px;float:left;vertical-align:top;" width="32" /><span id="loading-msg" style="font-size: 10pt;"><br/>Loading WebDirect...</span></div>
</div>
<!-- OPTIONAL: include this if you want history support -->
<iframe id="__gwt_historyFrame" src="javascript:''" style="width:0;height:0;border:0"></iframe>
<script src="webdirect/webdirect.nocache.js" type="text/javascript"></script>
<script src="js/rsa.js" type="text/javascript"></script>
</body>

Правильный контент, который я надеюсь проанализировать, как на скриншоте рядом с синими чернилами.

enter image description here

Тогда я обнаружил, что содержимое у меня отличается от содержимого на картинке.У меня

<div id="loading">

Но на картинке есть

<div id="x-auto-6">

Я пробовал использовать разные парсеры, такие как lxml и html5lib, но все равно у меня не получается.Какие-либо предложения?Заранее большое спасибо.

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