如何在使用asp.net的网站上进行HTTP POST?

2024-09-30 22:14:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python库requests来实现这一点,但我似乎无法登录到这个网站。 url是https://www.bet365affiliates.com/ui/pages/affiliates/,我一直在尝试用“ctl00$MasterHeaderPlaceHolder$ctl00$passwordTextbox”、“ctl00$MasterHeaderPlaceHolder$ctl00$userNameTextbox”等数据向https://www.bet365affiliates.com/Members/CMSitePages/SiteLogin.aspx?lng=1发送请求,但我似乎永远无法登录。在

有没有经验丰富的人可以检查一下页面的源代码,告诉我这里缺少什么?在


Tags: 数据httpscomurlui网站wwwpages
2条回答

您检查过浏览器用来让您登录的http请求吗? 你应该复制它。在

食品饮料

解决办法可能是这样的:请注意,你可以不使用硒。如果你不想这样做,首先你应该得到主分支页面,然后从响应数据中获取所有需要的信息(我通过xpath收集这些信息)。我只是没有足够的时间写在完整的请求中。在

要从响应数据收集信息,可以使用XML树库。使用相同的XPATH方法,您可以轻松地找到所有请求的信息。在

import requests
from selenium import webdriver

Password = 'YOURPASS'
Username = 'YOURUSERNAME'

browser = webdriver.Chrome(os.getcwd()+"/"+"Chromedriver.exe")
browser.get('https://www.bet365affiliates.com/ui/pages/affiliates/Affiliates.aspx')
VIEWSTATE=browser.find_element_by_xpath('//*[@id="__VIEWSTATE"]')
SESSIONID=browser.find_element_by_xpath('//*[@id="CMSessionId"]')
PREVPAG=browser.find_element_by_xpath('//*[@id="__PREVIOUSPAGE"]')
EVENTVALIDATION=browser.find_element_by_xpath('//* [@id="__EVENTVALIDATION"]')
cookies = browser.get_cookies()

session = requests.session()
for cookie in cookies:
    print cookie['name']
    print cookie['value']
    session.cookies.set(cookie['name'], cookie['value'])   

payload = {'ctl00_AjaxScriptManager_HiddenField':'',
           '__EVENTTARGET':'ctl00$MasterHeaderPlaceHolder$ctl00$goButton',
           '__EVENTARGUMENT':'',
           '__VIEWSTATE':VIEWSTATE,
           '__PREVIOUSPAGE':PREVPAG,
           '__EVENTVALIDATION':EVENTVALIDATION,
           'txtPassword':Username,
           'txtUserName':Password,
           'CMSessionId':SESSIONID,
           'returnURL':'/ui/pages/affiliates/Affiliates.aspx',
           'ctl00$MasterHeaderPlaceHolder$ctl00$userNameTextbox':Username,
           'ctl00$MasterHeaderPlaceHolder$ctl00$passwordTextbox':Password,
           'ctl00$MasterHeaderPlaceHolder$ctl00$tempPasswordTextbox':'Password'}


session.post('https://www.bet365affiliates.com/Members/CMSitePages/SiteLogin.aspx?lng=1',data=payload)

相关问题 更多 >