import urllib,urllib2,httplib,cookielib
def auto_login_hi(url,name,pwd):
url_hi="http://passport.baidu.com/?login"
#设置cookie
cookie=cookielib.CookieJar()
cj=urllib2.HTTPCookieProcessor(cookie)
#设置登录参数
postdata=urllib.urlencode({'username':name,'password':pwd})
#生成请求
request=urllib2.Request(url_hi,postdata)
#登录百度
opener=urllib2.build_opener(request,cj)
f=opener.open(request)
print f
#打开百度HI空间页面
hi_html=opener.open(url)
return hi_html
if __name__=='__main__':
name='name'
password='password'
url='yoururl'#例如:url='http://hi.baidu.com/cdkey51'
h=auto_login_hi(url,name,password)
print h.read()#h里面的内容便是登录后的页面内容
首先需要你开始手动登录一下,在该文件的目录下生成一个“renren.coockie”的文件,再可以每次运行该脚本就可以直接进入你的人人网的主页,实现代码如下:#!/usr/bin/env python
#encoding=gb2312
import sys
import re
import urllib2
import urllib
import cookielib
import webbrowser
class Renren(object):
def __init__(self):
self.name = self.pwd = self.content = self.domain = self.origURL = ''
self.operate = ''#登录进去的操作对象
self.cj = cookielib.LWPCookieJar()
try:
self.cj.revert('renren.coockie')
except Exception,e:
print e
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
urllib2.install_opener(self.opener)
def setinfo(self,username,password,domain,origURL):
'''设置用户登录信息'''
self.name = username
self.pwd = password
self.domain = domain
self.origURL = origURL
def login(self):
'''登录人人网'''
params = {'domain':self.domain,'origURL':self.origURL,'email':self.name, 'password':self.pwd}
print 'login.......'
req = urllib2.Request(
'http://www.renren.com/PLogin.do',
urllib.urlencode(params)
)
self.operate = self.opener.open(req)
if self.operate.geturl() == 'http://www.renren.com/*********': #用你的人人登录以后的首页地址,后面有一串数字
print 'Logged on successfully!'
self.cj.save('renren.coockie')
else:
print 'Logged on error'
ren = Renren()
username = ''#你的人人网的帐号
password = ''#你的人人网的密码
domain = 'http://www.renren.com'#人人网的地址
origURL = 'http://www.renren.com/*********'#用你的人人登录以后的首页地址,后面有一串数字
ren.setinfo(username,password,domain,origURL)
ren.login()
webbrowser.open(origURL) #自动打开网站
先用chrome的调试器抓取登录的POST请求,对照网页里表单的代码,你就清楚该网站登录的接口,之后用requests写就是了。我一般用更省事的方法,勾选自动登录,然后把cookies存下来给程序用,免登录,也不用处理登录验证码。当然需要增加检测是否需要重登录的逻辑。
少数情况下网站会拒绝常见浏览器以外的客户端请求,需要伪造user-agent,例如https://proxy.org 这个网站,直接用requests抓会返回一个“你丫是爬虫吧”的错误页面。