通过爬虫方式获取小红书授权登录的cookie的代码

1、代码里的normal_sign.js代码是某书签名算法xs,xt的实现-CSDN博客里的;

2、CookieUtil工具代码见抖音最新bd-ticket-guard-client-data逆向方法(2024年11月)-CSDN博客里的CookieUtil.py;

import json
import time
import zlib
from urllib.parse import urlparse

import execjs
import requests
import random
import uuid
import os
import qrcode
import hashlib
from fake_useragent import UserAgent

from CookieUtil import CookieUtil

normal_js = execjs.compile(open(r"xiaohongshu/normal_sign.js", "r"
### 小红书用户信息爬虫抓取方法 #### 使用 Python 和 Scrapy 构建基础框架 为了有效地从小红书平台获取用户信息,可以采用 Python 编程语言配合 Scrapy 框架来实现自动化数据采集过程。Scrapy 是一个强大的开源网络爬虫框架,专为网页抓取设计并支持异步处理请求。 ```python import scrapy from scrapy import Request class XhsUserSpider(scrapy.Spider): name = "xhs_user" start_urls = ['https://www.xiaohongshu.com/user/profile'] def parse(self, response): user_info = { 'username': response.css('div.username::text').get(), 'avatar_url': response.css('img.avatar::attr(src)').get(), 'followers_count': response.xpath('//span[@id="follower-count"]/text()').get() } yield user_info next_page = response.css('a.next-page::attr(href)').get() if next_page is not None: yield Request(response.urljoin(next_page)) ``` 此代码片段展示了如何定义一个简单的 Spider 类用于解析 HTML 响应中的特定元素[^1]。 #### 处理登录验证与会话保持 由于许多社交网站如小红书会对未授权访问实施严格限制措施,在尝试提取私人资料前通常需要先完成模拟登陆操作以维持合法有效的 session 连接状态。 ```python def login_spider(): headers = {'content-type': 'application/json'} payload = {"mobile": "+86手机号", "password": "密码"} s = requests.Session() r = s.post("https://passport.xiaohongshu.com/api/v2/passport/login/cellphone", json=payload, headers=headers) cookie_dict = requests.utils.dict_from_cookiejar(s.cookies) return cookie_dict ``` 这段脚本说明了通过 POST 请求发送账户凭证给服务器端口从而获得必要的 cookies 来绕过身份认证屏障[^2]. #### 动态加载内容应对方案 现代 Web 应用程序经常利用 JavaScript 实现按需渲染部分内容的功能特性;因此当遇到此类情形时,则可能需要用到 Selenium WebDriver 或 Playwright 工具辅助驱动浏览器实例执行 JS 脚本来确保目标 DOM 完整呈现出来供进一步分析使用[^3]. ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() # Navigate to the target URL and wait until it's fully loaded. page.goto('https://www.example.com') page.wait_for_timeout(5000) # Wait for dynamic content loading. html_content = page.content() print(html_content) browser.close() ``` 上述示例介绍了基于 Playwright 的无头模式下自动浏览指定网址直至其完全载入完毕后再读取整个页面源码字符串形式返回给调用者继续加工处理的方式
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sh_moranliunian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值