如何使用请求python模块登录到fidelity.com

如何使用请求python模块登录到fidelity.com,python,login,web-scraping,python-requests,Python,Login,Web Scraping,Python Requests,我正在尝试用python编写一个Web垃圾程序。然而,我想要抓取的页面都是在登录之后的。我有一个帐户,并一直试图按照帮助张贴。我想我做的一切都是对的,但我无法通过登录。我的代码发布在下面: #!/usr/bin/env python

我正在尝试用python编写一个Web垃圾程序。然而,我想要抓取的页面都是在登录之后的。我有一个帐户,并一直试图按照帮助张贴。我想我做的一切都是对的,但我无法通过登录。我的代码发布在下面:

#!/usr/bin/env python                                                                                                                                                

import requests, sys, lxml.html

#logging in
s = requests.Session()
login_url = 'https://login.fidelity.com/ftgw/Fas/Fidelity/RtlCust/Login/'

payload = {
    'ssn' : 'USERNAME',
    'pin' : 'PASSWORD'
}

s.post(login_url, data=payload, headers=dict(referer='https://login.fidelity.com'))

#page to scrape
response = s.get('https://fixedincome.fidelity.com/ftgw/fi/FIBondDetails?requestType=&displayFormat=TABLE&cusip=30382LDK1&ordersystem=TORD&preferenceName=')

print response.content #redirected to the login page

你错过了一些东西

罗吉努尔酒店

登录\u url=“”

您需要在post中传递这两个附加参数

“设备打印”:“版本%3D3.4.2.0\u 1%26pm\u fpua%3Dmozilla%2F5.0+(x11%3B+linux+x86\u 64%3B+rv%3A41.0)+gecko%2F200101+firefox%2F41.0%7C5.0+(x11)%7CLinux+x86\u 64%”, “SavedIdInd”:“N”

及其SSN和PIN(大写)

在那之后我尝试了这个url,它对我有效

响应=s.get(“”)


打印回复。内容

您如何知道它不起作用?查看如何创建。检查对post请求的响应-是否成功?网站可能试图阻止web scraper,因此您可能需要进一步模拟web浏览器用户代理等响应。内容是登录页面-当我尝试获取要刮取的url时,它会重定向到登录页面。至少我很确定这是真的。@Anentropic所以我添加了headers={'User-Agent':'Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/39.0.2171.95 Safari/537.36',但我仍然有同样的问题。除非你知道登录的帖子已经成功,否则做getBTW是没有意义的,成功登录后,在r.content{“status”:{“result”:“success”,“nextStep”:“Finish”,“context”:“RtlCust”}}
code
r=s.post(login\u url,data=payload,headers=dict(referer='))print(r.content)哇,真是太棒了。您是如何找到正确的登录url的?我算出了我需要传递的另外两个参数,但我总是在我的原始帖子中使用url。只要看看页面和页面中的表单就知道了。实际上,您可以删除dj.chf.ra,它仍然可以工作。从网页上,查看表单操作链接,html form id=“Login”name=“Login”action=“/ftgw/Fas/Fidelity/RtlCust/Login/Response”method=“post”role=“form”截至目前为止,我看不到该操作仍在运行@mwahal:你确认它对你仍然有效吗?从那以后我就没用过。我会看看是否能找到解决办法。