作者Jason1122 (Jason1122)
看板Python
標題[問題] urllib2抓取需驗證的網站
時間Thu Oct 13 11:50:30 2011
網頁要輸入帳號密碼
我參考了
http://tinyurl.com/4kua9b8
這份文檔
要抓的網站:
http://tinyurl.com/3smpx27
腳本按照文檔來寫,只改了帳號密碼,和改了最後一行
import re,urllib2
from BeautifulSoup import BeautifulSoup
theurl = '
http://www.agileinsights.com/test/ROMI/?page_id=11'
username = '*****'
password = '*****'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
foo = urllib2.urlopen(theurl).read()
輸入foo後出來的還是要輸入帳號密碼的網頁
該怎麼才能登入?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.40.37.34
1F:→ kilfu0701:這方式應該是用來 進入某網站前 會跳出對話框 輸入帳密 10/13 12:37
2F:→ kilfu0701:的方式 和你要的登入方式不一樣 10/13 12:37
3F:→ Jason1122:那有沒有什麼方法能抓這種網頁呢? 謝謝! 10/13 13:19
5F:→ pm2002:你需要看網站的html原始碼看他有post什麼東西跟post到哪 10/13 13:25
謝謝,用了他的方法可以抓xiami
但還是沒法抓我要的
http://tinyurl.com/3smpx27
import urllib
import urllib2
posturl =
"
http://www.agileinsights.com/test/ROMI/wp-login.php?redirect_to=/test/ROMI/"
values = {"user_login":"Tsung-Hsien", "user_pass":"ct5d$cswi^L7",
"wp-submit":"Log In", "rememberme":"forever"}
data = urllib.urlencode(values)
req = urllib2.Request(posturl, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
實在找不到怎麼修正,感覺是POST有問題
xiami也是用同樣方法,但卻可以
上面的帳號密碼用瀏覽器可以登入進去,還請幫幫忙! 謝謝!
※ 編輯: Jason1122 來自: 119.40.37.34 (10/13 15:44)
6F:→ blc:如果接受的話,套用瀏覽器的cookies應該也行得通。 10/13 16:01