蟒蛇的urllib2 document.login(python urllib2 document.

2019-09-20 19:07发布

你会如何去登录到已设置像这样一个网站,使用python的urllib2

以下是形式和的onsubmit在JavaScript处理。 我将如何在Python进程呢?

<script>

function handleLogin() {document.login.un.value = document.login.username.value;document.login.width.value = screen.width;document.login.height.value = screen.height;}

</script>

下面是所有组件的HTML表格发送作为后。 持有什么我是的onsubmit功能。

<form id='login' name='login' method='post' onsubmit="handleLogin();" action='login.php'>

<input class="txtbox glow" type="text" id="username" name="username" value="blanksss">

<input class="txtbox glow" type="password" id="password" name="pw" size="18" autocomplete="off" onkeypress="checkCaps(event)">

<input class="checkbox" type="checkbox" id="rememberUn" name="rememberUn" checked="checked">

<input class="loginButton" type="submit" id="Login" name="Login" value="Login">

</form>

Python代码我有一个方便的网站作品,未经JavaScript是:

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'https://login.site.com/') )
login_data = urllib.urlencode({'username' : 'mylogin',
                               'pw' : 'mypass',
                               'Login' : 'Login',
                               'rememberUn' : 'checked'
                               })
resp = opener.open('https://login.site.com/', login_data)
website = opener.open('https://eu1.site.com/a03/o')

bowl = BeautifulSoup(website)

关于如何处理JavaScript的代码,然后有什么想法后最终结果以表格的作用?

谢谢

Answer 1:

使用要求

import requests

data = {
      "username" : "youruser",
      "password" : "yourpass",
      "Login" : "Login",
}
r = requests.post(url, data=data)

该脚本将上工作的Python 2.7



Answer 2:

是的,你可以使用Web开发工具,试图弄清楚什么是被发送到服务器,也可以使用硒的webdriver只是推动实际的浏览器。 你甚至可以使用XVFB做无头。

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://some_url.com')
browser.find_element_by_id('username').send_keys('your_login') 
browser.find_element_by_id('password').send_keys('your_password')
browser.find_element_by_id('Login').click() 

print browser.page_source
browser.close()

你需要有chromedriver可执行文件路径中。



文章来源: python urllib2 document.login