我试图从网址获取比赛数据:" https://www.draftkings.com/contest/gamecenter/32947401"
如果您访问此网址但尚未登录,则只需将您重定向到大厅即可。如果您已登录,则会实际向您显示比赛结果。
以下是我尝试过的一些事情:
- 首先,我使用Chrome的Dev网络工具在我手动登录时观看请求
- 然后我尝试复制我认为包含身份验证信息的cookie,它的格式为:
'ajs_anonymous_id=%123123123123123, mlc=true; optimizelyEndUserId'
- 然后我将该cookie存储为Evironment变量并运行此代码:
HEADERS= {'cookie': os.environ['MY_COOKIE'] }
requests.get(draft_kings_url, headers= HEADERS)
没有运气,这只是给了我大厅。
然后我尝试了内置的请求:
这里也没有运气。
到目前为止,我还没有蟒蛇专家,而且我已经非常精疲力尽,我所知道的以及我找到的搜索结果。有什么想法吗?
答案 0 :(得分:0)
您想要的工具是硒。有点像:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get(r"https://www.draftkings.com/contest/gamecenter/32947401" )
username = browser.find_element_by_id("user")
username.send_keys("username")
password = browser.find_element_by_id("password")
password.send_keys("top_secret")
login = selenium.find_element_by_name("login")
login.click()
答案 1 :(得分:0)
使用fiddler查看他们在您尝试登录时所做的确切请求。然后在请求包中使用Session类。
import requests
session = requests.Session()
session.get('YOUR_URL_LOGIN_PAGE')
这将在您的会话变量中保存您网址中的所有Cookie(就像您使用浏览器时一样)。 然后使用适当的数据向登录URL发送帖子请求。
您不必手动传递cookie数据,因为它是您第一次访问网站时自动生成的。但是,您可以通过以下方式明确设置一些标题,如UserAgent
等:
session.headers.update({'header_name':'header_value'})
HTTPBasicAuth& HTTPDigestAuth可能无法在网站上运行。