登录网站并抓取数据
Logging into website and scraping data
我要登录的网站是https://realitysportsonline.com/RSOLanding.aspx。我似乎无法让登录工作,因为该过程与具有登录特定页面的典型站点略有不同。我没有收到任何错误,但登录操作不起作用,然后导致主页面重定向到主页。
import requests
url = "https://realitysportsonline.com/RSOLanding.aspx"
main = "https://realitysportsonline.com/SetLineup_Contracts.aspx?leagueId=3000&viewingTeam=1"
data = {"username": "", "password": "", "vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-3d vc_btn3-color-danger" : "Log In"}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Referer': 'https://realitysportsonline.com/RSOLanding.aspx',
'Host': 'realitysportsonline.com',
'Connection': 'keep-alive',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}
s = requests.session()
s.get(url)
r = s.post(url, data, headers=header)
page = requests.get(main)
首先,您创建一个 session 并假设您的 POST
请求有效,然后您请求授权页面而不使用您之前创建的 session。
您需要使用您创建的 s
object 发出请求,如下所示:
page = s.get(main)
但是,您的 POST
请求也存在一些问题。您正在向主页而不是 /Login
路由发出请求。您还错过了 Content-Type
header.
import requests
url = "https://realitysportsonline.com/Services/AccountService.svc/Login"
main = "https://realitysportsonline.com/LeagueSetup.aspx?create=true"
payload = {"username":"","password":""}
headers = {
'Content-Type': "text/json",
'Cache-Control': "no-cache"
}
s = requests.session()
response = s.post(url, json=payload, headers=headers)
page = s.get(main)
PS 你的 main
请求 url 重定向到主页,即使有一个有效的 session (至少对我来说是这样)。
我要登录的网站是https://realitysportsonline.com/RSOLanding.aspx。我似乎无法让登录工作,因为该过程与具有登录特定页面的典型站点略有不同。我没有收到任何错误,但登录操作不起作用,然后导致主页面重定向到主页。
import requests
url = "https://realitysportsonline.com/RSOLanding.aspx"
main = "https://realitysportsonline.com/SetLineup_Contracts.aspx?leagueId=3000&viewingTeam=1"
data = {"username": "", "password": "", "vc_btn3 vc_btn3-size-md vc_btn3-shape-rounded vc_btn3-style-3d vc_btn3-color-danger" : "Log In"}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Referer': 'https://realitysportsonline.com/RSOLanding.aspx',
'Host': 'realitysportsonline.com',
'Connection': 'keep-alive',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}
s = requests.session()
s.get(url)
r = s.post(url, data, headers=header)
page = requests.get(main)
首先,您创建一个 session 并假设您的 POST
请求有效,然后您请求授权页面而不使用您之前创建的 session。
您需要使用您创建的 s
object 发出请求,如下所示:
page = s.get(main)
但是,您的 POST
请求也存在一些问题。您正在向主页而不是 /Login
路由发出请求。您还错过了 Content-Type
header.
import requests
url = "https://realitysportsonline.com/Services/AccountService.svc/Login"
main = "https://realitysportsonline.com/LeagueSetup.aspx?create=true"
payload = {"username":"","password":""}
headers = {
'Content-Type': "text/json",
'Cache-Control': "no-cache"
}
s = requests.session()
response = s.post(url, json=payload, headers=headers)
page = s.get(main)
PS 你的 main
请求 url 重定向到主页,即使有一个有效的 session (至少对我来说是这样)。