作者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