Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法使用Python从网站获取结果_Python 3.x_Http_Cookies - Fatal编程技术网

Python 3.x 无法使用Python从网站获取结果

Python 3.x 无法使用Python从网站获取结果,python-3.x,http,cookies,Python 3.x,Http,Cookies,我有一个网页https://freddiemac.embs.com/FLoan/secure/login.php我需要提供登录信息,然后在成功登录后,我将登陆另一个网页https://freddiemac.embs.com/FLoan/Data/download.php我需要在此处勾选“条款和条件”复选框,然后单击“继续”,页面将刷新以显示我需要下载的大量zip文件 我正在使用以下代码登录网站: import urllib import urllib.request import http.co

我有一个网页
https://freddiemac.embs.com/FLoan/secure/login.php
我需要提供登录信息,然后在成功登录后,我将登陆另一个网页
https://freddiemac.embs.com/FLoan/Data/download.php
我需要在此处勾选“条款和条件”复选框,然后单击“继续”,页面将刷新以显示我需要下载的大量
zip
文件

我正在使用以下代码登录网站:

import urllib
import urllib.request
import http.cookiejar

payload = {'username': 'username', 'password': 'password','submit': 'Submit Credentials'}

cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
login_data = urllib.parse.urlencode(payload)
binary_data = login_data.encode('utf8')

opener.open('https://freddiemac.embs.com/FLoan/secure/login.php', binary_data)
resp = opener.open('https://freddiemac.embs.com/FLoan/Data/download.php')

print(resp.read())
我得到以下结果,我觉得这是
https://freddiemac.embs.com/FLoan/secure/login.php
仅限第页

b'\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<title>Freddie Mac Loan 
History</title>\r\n<link rel=\'stylesheet\' type=\'text/css\' 
href=\'/FLoan/app_corp.css\'>\r\n<link rel=\'stylesheet\' type=\'text/css\' 
href=\'/FLoan/empty.css\'>\r\n<link rel=\'stylesheet\' type=\'text/css\' 
href=\'/FLoan/empty2.css\'>\r\n</head>\r\n<body>\r\n<H2>Please log 
in</H2>\n\t<form name=\'loginform\' action=\'auth.php\' method=\'post\' 
class=\'form\'>\n\t<div class=\'row\'><div class=\'small-5 column\' 
>\n\t<label for="username" >Enter email address:</label>\n\t<input 
name=\'username\' type=\'email\' placeholder=\'name@company.com\'>
</p>\n\t</div></div>\n\t<div class=\'row\'><div class=\'small-5 column\' 
>\n\t<label for="password" >Enter password:</label>\n\t<input 
name=\'password\' type=\'password\' autocomplete=\'off\'>\n\t</div>
</div>\n\t<div class=\'row\'><div class=\'small-5 column\' >\n\t<input 
type=\'submit\' value=\'Submit Credentials\' class=\'fmSubmit\'>\n\t</div>
</div>\n\t</form>\n\t</p>\n\n</div></div></body></html>\n'
b'\n\r\n\r\n\r\nFreddie Mac贷款
历史记录\r\n\r\n\r\n\r\n\r\n\r\n\r\n请记录
在\n\t\n\t\n\t中,输入电子邮件地址:\n\t

\n\t\n\t\n\t输入密码:\n\t\n\t \n\t\n\t\n\t \n\t\n\t

\n\n\n'
我按照线程下给出的步骤进行操作


谢谢你的帮助

你好,普拉尚特·维克拉姆·辛格。我知道你刚才问了这个问题,但我自己在寻找同一个问题的答案时遇到了你的问题。关键是使用auth.php进行身份验证,然后传递您是否接受条款和条件。代码如下。希望这能帮助你或其他遇到同样问题的人

import requests

def get_freddie_links(payload1,payload2):
"""
This function takes in the data payloads for two http post to Freddie Mac Website, returns the list of issuance
disclosure files. 
"""
with requests.Session() as sess:
    response = sess.post('https://freddiemac.embs.com/FLoan/secure/auth.php',data=payload1)
    final_url = sess.post('https://freddiemac.embs.com/FLoan/Data/download2.php',data=payload2)
return final_url.text

singlefamily_payload = {'username' : <USERNAME>,'password' : <PASSWORD>}
payload2={'accept': 'Yes','acceptSubmit':'Continue','action':'acceptTandC'}
results = get_freddie_links(singlefamily_payload,payload2)
导入请求
def get_freddie_链接(付费1、付费2):
"""
此函数接收两个http post到房地美网站的数据有效载荷,返回发布列表
披露文件。
"""
将requests.Session()作为SES:
响应=sess.post('https://freddiemac.embs.com/FLoan/secure/auth.php,data=payload1)
最终url=sess.post('https://freddiemac.embs.com/FLoan/Data/download2.php,数据=payload2)
返回最终url.text
singlefamily_负载={'username':,'password':}
payload2={'accept':'Yes','acceptSubmit':'Continue','action':'AcceptAndC'}
结果=获取链接(单家庭有效载荷,有效载荷2)