Python模拟登录人人网,并使用代理IP
#__author__ = 'Administrator'
#encoding=utf-8
import urllib2,urllib
import cookielib
from bs4 import BeautifulSoup
#登录的url
hosturl = "http://www.renren.com"
#这里是要将账号和密码等信息要发送到的url,我用的是WSExploer抓包
posturl = "http://www.renren.com/ajaxLogin/login"
#生成cookies
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
#opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler)
#ullib2.install_opener(opener)
#打开登陆界面,获取cookie,并将该cookie保存下来
h = urllib2.urlopen(hosturl)
#设置使用代理
proxy = {'http':'120.197.234.164:80'}
proxy_support = urllib2.ProxyHandler(proxy)
# opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler(debuglevel=1))
opener = urllib2.build_opener(cookie_support,proxy_support,urllib2.HTTPHandler)
urllib2.install_opener(opener)
#构造头,这方法和上边获取posturl方法一样
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0/',
'Referer':'http://www.renren.com/'
}
#发送的数据,同上
postdata={
'email':'xxxxxxxxxxx', #用户名
'password':'xxxxxxxxxx' #密码
}
#将数据进行编码
postdata = urllib.urlencode(postdata)
#构造一个请求消息
request = urllib2.Request(posturl,postdata,headers)
print "requests:%s" % request
#发送一个请求消息
response = urllib2.urlopen(request)
text = response.read()
print "text:%s" %text
listvalue = text.split(",")
#获取人人登录的主页
href = listvalue[1].split(":")[2]
#print href[:-2]
renrenhttp = "http:" + href[:-2]
print "renrenhttp:%s" % renrenhttp
#print urllib2.urlopen(renrenhttp).read()
page = urllib2.urlopen(renrenhttp).read()
soup = BeautifulSoup(page)
print soup.title
上述代码中同时使用了代理ip和模拟登录,若不使用代理ip只需修改如下
为:
即可
扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!
【技术服务】,详情点击查看:https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg