Python 登录网站,下载文件

Python 登录网站,下载文件,python,pdf,cookies,download,Python,Pdf,Cookies,Download,我正在尝试使用python脚本登录学校网站,然后下载每周上传一次的家庭作业PDF。我已经成功地从正常的、不受保护的网站下载了PDF,但是我在理解cookies的机制方面遇到了困难。我在谷歌上搜索了很多,但我找到的唯一代码是以下代码 import urllib, urllib2, cookielib testfile = urllib.URLopener() username = 'example@gmail.com' password = '*****' cj = cookielib.Co

我正在尝试使用python脚本登录学校网站,然后下载每周上传一次的家庭作业PDF。我已经成功地从正常的、不受保护的网站下载了PDF,但是我在理解cookies的机制方面遇到了困难。我在谷歌上搜索了很多,但我找到的唯一代码是以下代码

import urllib, urllib2, cookielib

testfile = urllib.URLopener()

username = 'example@gmail.com'
password = '*****'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'j_password' : password})
opener.open('http-this.pdf', login_data)
testfile.retrieve("http-path-to-file")
基本上,我已经尝试输入所有适当的信息,但没有效果,我也不知道如何操作代码,使其达到我想要的效果。如何使用python登录网站,然后下载pdf

编辑 好的,这是我得到的新代码,这类代码很有效,但是它输出了一个带有.pdf扩展名的网站html代码的副本,而不是我实际上试图从网站下载的文件。怎么了

import requests
s = requests.Session()
data = {"login":"MYLOG", "password":"*****"}
url = "https://website.php"
url2 = "https://path-to-pdf.pdf"

r2 = s.post(url, data=data)
s.get(url2)
r = s.get(url2)
with open("204_HW.pdf", "wb") as code:
    code.write(r.content)

使用
requests.Session()
,这非常简单好,这非常有用,肯定是朝着正确方向迈出的一步。我将在原始问题中附加更新的代码。现在我已经把它保存到我想要的地方,但是当我试图打开它时,它会给我一个“文件损坏”的错误。我需要更改什么?使用
requests.Session()
,这非常简单好的,这非常有用,肯定是朝着正确方向迈出的一步。我将在原始问题中附加更新的代码。现在我已经把它保存到我想要的地方,但是当我试图打开它时,它会给我一个“文件损坏”的错误。我需要改变什么?