Python 登录一个站点并导航其他页面

Python 登录一个站点并导航其他页面,python,python-3.x,urllib,Python,Python 3.x,Urllib,我为Python2编写了一个脚本,可以登录到一个网页,然后进入其中,访问指向同一站点但不同页面的两个文件。Python 2允许我使用凭据打开站点,然后创建一个opener.open(),以保持连接可用,从而导航到其他页面 下面是在Python 2中工作的代码: $Your admin login and password LOGIN = "*******" PASSWORD = "********" ROOT = "https:*********" #The client have to ta

我为Python2编写了一个脚本,可以登录到一个网页,然后进入其中,访问指向同一站点但不同页面的两个文件。Python 2允许我使用凭据打开站点,然后创建一个
opener.open()
,以保持连接可用,从而导航到其他页面

下面是在Python 2中工作的代码:

$Your admin login and password
LOGIN = "*******"
PASSWORD = "********"
ROOT = "https:*********"

#The client have to take care of the cookies.
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))

#POST login query on '/login_handler' (post data are: 'login' and 'password').
req = urllib2.Request(ROOT + "/login_handler",
                      urllib.urlencode({'login': LOGIN,
                                        'password': PASSWORD}))
opener.open(rep)

#Set the right accountcode

for accountcode, queues in QUEUES.items():
    req = urllib2.Request(ROOT + "/switch_to" + accountcode)
    opener.open(req)
我需要在Python3中做同样的事情。我尝试过使用请求模块和urllib,但尽管我可以建立第一次登录,但我不知道如何保持开场白来导航站点。我找到了OpenerDirectory,但似乎我不知道怎么做,因为我还没有达到我的目标

我使用了这个Python 3代码来获得所需的结果,但不幸的是,我无法获得csv文件来打印它。

问题:我不知道如何让开场白在网站上导航

Python 3.6»文档

基本HTTP身份验证的使用:

import urllib.request
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm='PDQ Application',
                      uri='https://mahler:8092/site-updates.py',
                      user='klem',
                      passwd='kadidd!ehopper')

opener = urllib.request.build_opener(auth_handler)

# ...and install it globally so it can be used with urlopen.
urllib.request.install_opener(opener)
f = urllib.request.urlopen('http://www.example.com/login.html')
csv_content = f.read()
问题:我不知道如何让开场白在网站上导航

Python 3.6»文档

基本HTTP身份验证的使用:

import urllib.request
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm='PDQ Application',
                      uri='https://mahler:8092/site-updates.py',
                      user='klem',
                      passwd='kadidd!ehopper')

opener = urllib.request.build_opener(auth_handler)

# ...and install it globally so it can be used with urlopen.
urllib.request.install_opener(opener)
f = urllib.request.urlopen('http://www.example.com/login.html')
csv_content = f.read()

使用python 3和会话的python请求库。

登录后,会话将自动管理。你不需要创建自己的饼干罐。下面是示例代码

s = requests.Session()
auth={"login":LOGIN,"pass":PASS}
url=ROOT+/login_handler
r=s.post(url, data=auth)
print(r.status_code)
for accountcode, queues in QUEUES.items():
    req = s.get(ROOT + "/switch_to" + accountcode)
    print(req.text) #response text

使用python 3和会话的python请求库。

登录后,会话将自动管理。你不需要创建自己的饼干罐。下面是示例代码

s = requests.Session()
auth={"login":LOGIN,"pass":PASS}
url=ROOT+/login_handler
r=s.post(url, data=auth)
print(r.status_code)
for accountcode, queues in QUEUES.items():
    req = s.get(ROOT + "/switch_to" + accountcode)
    print(req.text) #response text

请显示您的python 3代码和错误当前的python 3文档具有良好的urllib opener示例和有效的示例代码,请参阅:部分:基本身份验证请显示您的python 3代码和错误当前的python 3文档具有良好的urllib opener示例和有效的示例代码,请参阅:部分:基本身份验证我遇到的问题是,我必须使用用户和密码,然后在登录后继续浏览网站(这就是为什么打开程序),然后下载文件。它不起作用也没有帮助,请检查您收到的响应错误或代码。您是否已验证登录成功?请不要使用
回答
作为您的评论,请相应地回答您的问题。请不要使用图片回答您的问题并添加您当前的
Python3
。我可以看看
print(f.status)
print(f.reason)
。你的问题相应。我的问题是,我必须使用一个用户和密码,然后在登录后继续浏览网站(这就是为什么开场白),然后下载文件。它不起作用也没有帮助,请检查响应错误或你得到的代码。您是否已验证登录成功?请不要使用
回答
作为您的评论,请相应地回答您的问题。请不要使用图片回答您的问题并添加您当前的
Python3
。我可以看看
print(f.status)
print(f.reason)
。你的问题相应。不幸的是,它也不起作用,我无法在开始阅读之前完成所需的登录。你是否适当地更改了参数?用户名和密码。是的,我更改了,但看起来我无法完成验证。密码和用户都正常,因为每次我尝试使用我的浏览器时,不幸的是,它也不工作,我无法在开始阅读之前完成所需的登录。您是否正确更改了参数?用户名和密码。是的,但看起来我无法完成此验证。密码和用户都正常,因为每次我尝试使用我的浏览器时,都能正常工作