爬虫中session应用的一个简单实例: 利用requests的session功能登录人人网

requests的session不同于服务器的session,这里的session只是requests的一个方法, requests的模拟登录需要用到这个方法.
首先实例化session:

s = requests.session()

通过对这个方法传入用户名和密码,需要定义一个字典(这里的email和password是网站上登录框里的对应属性):

form_data = {
    'email': '用户名',
    'password': '密码'
    }

把用户名和密码传给session后,通过向网站发起post登录请求, 再用"登录"的session向需要的页面发起get请求,这样就get到了登录过的页面.

s.post(post_url, data=form_data)
# res 为登录后的响应页面
res = self.session.get(url)

下面是全部 的代码, 代码只对页面的学校信息进行了输出打印

import requests
from lxml import etree


class RenRenSpider(object):
    def __init__(self):
        self.post_url = 'http://www.renren.com/PLogin.do'
        self.get_url = 'http://www.renren.com/599512731/profile'
        # 实例化session对象
        self.session = requests.session()

    def get_html(self):
        form_data = {
            'email': '用户名',
            'password': '密码'
        }
        self.session.post(self.post_url, data=form_data)
        res = self.session.get(self.get_url)
        res.cookies.update()
        res.encoding = 'utf-8'
        html = res.text
        self.parse_html(html)

    @staticmethod
    def parse_html(html):
        parse_html = etree.HTML(html)
        r_list = parse_html.xpath('//*[@id="operate_area"]/div[1]/ul/li[1]/span/text()')[0].strip()
        print(r_list)


if __name__ == '__main__':
    spider = RenRenSpider()
    spider.get_html()
    ```
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值