簡體   English   中英

使用mechanize登錄網頁

[英]Using mechanize to login to a webpage

這是我用Python編程的第一次經歷,我正在嘗試登錄這個網頁。 搜索后我發現許多人建議使用mechanize 為了確保在我獲得代碼之前我正確設置了東西,我從網站上下載了mechanize zip,並將我的python腳本放在解壓縮的機械化文件夾中。

到目前為止,我使用了我發現的不同示例:

import mechanize

theurl = 'http://voyager.umeres.maine.edu/Login'
mech = mechanize.Browser()
mech.open(theurl)

mech.select_form(nr=0)
mech["userid"] = "MYUSERNAME"
mech["password"] = "MYPASSWORD"
results = mech.submit().read()

f = file('test.html', 'w')
f.write(results) 
f.close()

從查看網頁的來源我相信用戶名/密碼是表單的正確名稱。 當我在IDLE運行腳本時,我得到一堆錯誤,包括超時錯誤和機器人錯誤。 完整的追溯: 在此輸入圖像描述 即使代碼有效,我也不確定我應該期待什么。 登錄是我的學校電子郵件,它也有類文件夾。 我想要完成的最終游戲是,一旦我登錄我的帳戶,我想解析一些文件夾以獲取信息,並將它們存儲在一個文件中,以后可以轉換為json或RSS feed,但這更進一步對Python有更好理解的道路,只是想更清楚地了解我想要實現的目標。

問題是Mechanize尊重robots.txt

你必須把它關掉。

解:

mech = mechanize.Browser()
// needs to be set before you call open
mech.set_handle_robots(False)

編輯:該網站似乎正在使用通過Javascript生成的某種其他POST值。 這可能是重建自己的痛苦,檢查頁面的來源以查看正在發生的事情。 發送的實際POST值:

challenge   [a14b1f67-11edcc01]
charset UTF-8
login   Login
origurl /Login/
password    
savedpw 0
sha1    3f77d1e8c2ab0470ef8005a85f5f9c0d7aeedba6
userid  sdsads

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM