Python登录请求,但可以';我没有完整的页面

Python登录请求,但可以';我没有完整的页面,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,似乎我无法用我的脚本完成页面,但我已经检查了发送请求,这通常是好的。我为这个场合创建了一个测试帐户。这是我的剧本: 导入请求 从bs4导入BeautifulSoup作为bs 将requests.Session()作为c: url='1〕https://www.siemens-syncoic.com/#/Login' 用户名=”lj@yopmail.com" PASSWORD=“PASSWORD.01” c、 获取(url) login\u data=dict(用户名=username,密码=pa

似乎我无法用我的脚本完成页面,但我已经检查了发送请求,这通常是好的。我为这个场合创建了一个测试帐户。这是我的剧本:

导入请求
从bs4导入BeautifulSoup作为bs
将requests.Session()作为c:
url='1〕https://www.siemens-syncoic.com/#/Login'
用户名=”lj@yopmail.com"
PASSWORD=“PASSWORD.01”
c、 获取(url)
login\u data=dict(用户名=username,密码=password,记住class='false')
c、 post(url,数据=登录\数据)
page=c.get('https://www.siemens-syncoic.com/#/Operating,超时=(2,5))
打印(第页状态代码)
打印(bs(page.content,'html.parser'))
我得到了这个结果:

200
console.time('加载文件')
window.SERVER\u配置={
应用程序根路径:'/Frontend/dist/',
应用程序模式产品:正确,
API_URL:'https://backend.api.climatixic.com“+”/Public”,
小数分隔符:'.'',
分组分隔符:',',
默认语言:“en-US”,
当前主题:“”,
MVC_脚本:[
{
路径:'/bundles/newui?v=3y6l1SmB3IYPNjlDiBaMauJJSTuX-EDGXXZOCSWI9O1'
},
{
路径:'/bundles/globalize?v=0JjlGHj5TrHXZT3Y5icAMYgxzrQFAnkGr-fjs-u5kPM1'
},
{
路径:'/bundles/globalize/en?v=gpUbXiN0legtaAjCFj_qS8lAax3kDu08iVOL-80rCnc1'
},
{
脚本:“Globalize.locale(“en”);”
},
{
路径:'/bundles/dxwebappjs?v=vJE5ySakgAF8yjDHMgwCkfgsxA0qNyfpNCRn-zVc67M1'
},
{
路径:'/bundles/dxwebappjs/en-US?v=sTEBg3eGmyhji_Yof9X2ulVuLQEyZOh2tFYErmbVReA1'
},
{
脚本:“DevExpress.ui.dxOverlay.baseZIndex(2100);”
},
{
路径:'/Frontend/dist/old/old content.adapter.js?v=14.0.7444'
}
],
应用程序URL:“”,
支持的_语言:['en-US','en-GB','de-de','de-CH','fr-fr','it-it','nl-nl','pl-pl','sv-SE','fi-fi','nb-NO','da-DK','cs-CZ','sk-sk','es-es','pt-pt','hu hu hu'ro-ro','el-GR'ru'tr tr'uk-UA'ja-JP','ko zh-CN',],
地图提供商:“谷歌”,
地图提供者密钥:“Aizasyca1-patixFBMOP2W5LFJZMN-CsSl0y4LE:90”
,EXT_AUTH_TYPE:'siemensid'
,代理会话超时:540000
};
加载应用程序
但我应该有更多的html代码。。。
它喜欢加载,但因此我在get()上设置了一个超时=(2,5)…

您的登录无法工作,因为您使用了错误的URL进行登录。发送请求时使用标题。登录后,通过XHR请求加载您要查找的数据

import requests

headers = {
    'Host': 'www.siemens-syncoic.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'en-US,en;q=0.5',
    'Accept-Encoding': 'gzip, deflate, br',
    'Content-Type': 'application/json',
    'Origin': 'https://www.siemens-syncoic.com',
    'Referer': 'https://www.siemens-syncoic.com/'
}

with requests.Session() as session:

    login_page_url = 'https://www.siemens-syncoic.com/#/Login'
    session.get(login_page_url)

    login_url = "https://www.siemens-syncoic.com/clx/authentication"
    login_data = {"password":"Password.01","rememberme":"false","username":"lj@yopmail.com"}
    response = session.post(login_url, json=login_data, headers=headers)

    print('LoginResponse:', response.status_code, response.content)

    payload = {"requireTotalCount":"false","requireGroupCount":"false","sort":"[{\"selector\":\"Tenant\",\"desc\":false},{\"selector\":\"Name\",\"desc\":false}]","filter":"[\"Tenant\",\"=\",\"Siemens+Proxy\"]"}

    page = session.post('https://www.siemens-syncoic.com/dxdata/dxsites', data=payload, timeout=(2, 5))
    print(page.status_code, response.content)

数据肯定是由一些JS加载的,因此它不存在于您刚刚加载的HTML中。正如@thierrylahuille所说,请求不会生成JS。尝试使用无头browserOk谢谢我会尝试使用selenium