人人网爬虫登录 缓存技术的运用

HTTP Cookie
是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
它用于告知服务端两个请求是否来自同一浏览器,以保持用户的登录状态

Cookie主要用于以下三个方面:

会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
个性化设置(如用户自定义设置、主题等)
浏览器行为跟踪(如跟踪分析用户行为等)

人人网爬虫实现登录

  1. 初次登录后退出

  2. 再次登录点击F12观察 看到一个返回document的请求 点击查看具体
    在这里插入图片描述有人人网用户名 表面进入登录成功页
    在这里插入图片描述

  3. 可以看到第二次登录内容中出现cookie 其中包含你的登录名以及加密后的密码
    在这里插入图片描述
    4.附上useragent和cookie 使用get方式去请求

具体代码如下:

import requests
from bs4 import BeautifulSoup


class renrenwangSpider():
    def __init__(self, url, user_agent):
        self._url = url
        self._user_agent = user_agent

    def makeCookie(self, cookie_str):
        cookie = {
            item.split("=")[0]: item.split("=")[1]
            for item in cookie_str.split(";")
        }
        return cookie

    def requestRenrenWebsite(self, cookie):
        try:
            res = requests.get(self._url,
                               headers=self._user_agent,
                               cookies=cookie)
            if res.status_code == 200:
                return res.text
        except requests.RequestException:
            return None

    def getTitle(self, html):
        soup = BeautifulSoup(html, "lxml")
        return soup.title.string


def main():
    url = "http://www.renren.com/974135345"
    user_agent = {
        "User-Agent":
        "机密 自填"
    }
    cookie_str = "Cookie: 自填"
    spider = renrenwangSpider(url,user_agent)
    cookie=spider.makeCookie(cookie_str)
    res=spider.requestRenrenWebsite(cookie)
    title=spider.getTitle(res)
    print(title)

if __name__ == '__main__':
    main()
    

若查询结果为你登录网名 则为成功
在这里插入图片描述

发布了67 篇原创文章 · 获赞 2 · 访问量 4851

猜你喜欢

转载自blog.csdn.net/shark_chili3007/article/details/105253825