首先在登录页面先登录一次,然后查看post了什么数据给服务器。
#coding:utf-8
import urllib
import urllib2
import cookielib
#登陆页url
#百度
login_url = 'https://passport.baidu.com/v2/?login'
post_url = 'https://passport.baidu.com/v2/api/?login'
#用cookielib模块创建一个对象,再用urlllib2模块创建一个cookie的handler
cookie = cookielib.CookieJar()
cookie_handler = urllib2.HTTPCookieProcessor(cookie)
#有些网站反爬虫,这里用headers把程序伪装成浏览器
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36'}
#登录需要提交的表单
#百度
pstdata = {
XXXXXXXXXXXXXX ###把form_data复制过来
}
data = urllib.urlencode(pstdata) #表单数据编码成url识别的格式
req = urllib2.Request(url=post_url,data=data,headers=header) #伪装成浏览器,访问该页面,并POST表单数据,这里并没有实际访问,只是创建了一个有该功能的对象
opener = urllib2.build_opener(cookie_handler) #绑定handler,创建一个自定义的opener
response = opener.open(req) #请求网页,返回句柄
page = response.read() #读取并返回网页内容
print 'Cookie:',cookie
print(page) #打印到终端显示