python3.6登录获取cookies爬取人人网数据

本文主要通过如何使用urllib和cookiesJar来模拟人人网登录和保存cookies。

直接上代码

from urllib import request as urllib2
from urllib import parse
from http import cookiejar
import random
import json

def bycookie():
    ua_list = [
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1",
        "Mozilla/5.0 (Windows NT 6.1; rv2.0.1) Gecko/20100101 Firefox/4.0.1",
        "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
        "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
    ]
    user_agent = random.choice(ua_list)

    # 通过cookiejar()类构建一个cookieJar对象,用来保存cookie的值
    cookie = cookiejar.CookieJar()

    # 通过HTTPCookieProcessor()对象构建一个处理器对象,用来处理cookie
    # 参数是CookieJar对象
    cookie_handler = urllib2.HTTPCookieProcessor(cookie)

    formData = {
        'email': '账号',
        'password': '密码',
    }
    data = parse.urlencode(formData).encode('utf-8')
    opener = urllib2.build_opener(cookie_handler)

    url = r'http://www.renren.com/PLogin.do'

    request = urllib2.Request(url=url, data=data, headers=user_agent)

    response = opener.open(request)
    # 打开登陆后的跳转页面
   # print(response.read().decode())

    # 打开个人中心 第二次不用再传表单数据 cookie已经得到了保存
    # 第二次可以是get请求,这个请求将保存生成cookie一并发到web服务器,服务器会验证cookie通过
    url2 = 'http://zhibo.renren.com/liveroom/hot/list?offset=0&limit=10&requestToken=330105178&_rtk=df6dffb4'

    data1 = parse.urlencode(formData).encode('utf-8')
    request1 = urllib2.Request(url=url2,data=data1,headers=headers)
    response2 = opener.open(url2)

    file_name = 'rrw.json'
    with open(file_name,'w',encoding='utf-8') as file:
        js = json.dumps(response2.read().decode(), ensure_ascii=False)
        jsLoads = json.loads(js)
        file.write(jsLoads)





if __name__ == '__main__':
    bycookie()

首先我们得设置我们得请求头,没有设置的话,网站就会知道你是爬虫而进行访问拦截。所以我这里初始化了几个请求头User-Agent,然后进行随机选取。

再者,创建一个cookiesJar对象来保存我们的cookies。然后通过HttpCookiesProcesser来对cookies进行处理。

然后使用一系列的urllib操作进行请求,返回respones。

最后把请求的数据写进json文件里,到这就就完成了。

打开json文件可以看到我们爬去的数据

C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值