Python的验证和使用的浏览器,urllib而CookieJar推出私人页面(Python aut

2019-07-18 12:02发布

我想cookiejar登录并并推出不登录页面,但只能被看作认证后的页面。 我知道机械化这是否但除了现在没有工作对我来说,我宁愿做没有它。 我现在有,

import urllib, urllib2, cookielib, webbrowser
from cookielib import CookieJar

username = 'my_username'
password = 'my_password'
url = 'my_login_page'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'my_username' : username, 'my_password' : password})
opener.open(url, login_data)
page_to_launch = 'my_authenticated_url'
webbrowser.open(page_to_launch, new=1, autoraise=1)

我既能够在不承认该cookie登录并转储认证页面到stdout,或启动登录页面,但我不能够在登录后推出我要的页面。帮助表示赞赏。

Answer 1:

您可以使用硒模块来做到这一点。 它启动一个浏览器(Chrome,火狐,IE等)加载到它的扩展,使您可以控制浏览器。

这里是你如何加载到饼干吧:

from selenium import webdriver
driver = webdriver.Firefox() # open the browser

# Go to the correct domain
driver.get("http://www.example.com")

# Now set the cookie. Here's one for the entire domain
# the cookie name here is 'key' and it's value is 'value'
driver.add_cookie({'name':'key', 'value':'value', 'path':'/'})
# additional keys that can be passed in are:
# 'domain' -> String,
# 'secure' -> Boolean,
# 'expiry' -> Milliseconds since the Epoch it should expire.

# finally we visit the hidden page
driver.get('http://www.example.com/secret_page.html')


Answer 2:

您的Cookie不会做它的浏览器。

webbrowser具有接受存储在你的饼干没有任何设施CookieJar实例。 它只是用于启动浏览器的URL的通用接口。 你将不得不实施CookieJar可以存储cookie在浏览器中(这几乎肯定是不小的任务),或使用解决了这个问题,你的一个替代库。



文章来源: Python authenticate and launch private page using webbrowser, urllib and CookieJar