获取小红书某个用户列表

from playwright.sync_api import sync_playwright

import time

cookie=[] #用自己的cookie

def capture_response(response, url_to_capture, api_response_data):

检查响应的 URL 是否匹配

if url_to_capture in response.url:

检查是否是 JSON 格式

if 'application/json' in response.headers.get('content-type', ''):

api_response_data.append(response.json()) # 将 JSON 数据添加到列表中

p = sync_playwright().start()

browser = p.chromium.launch(headless=True)

context = browser.new_context()

context.add_cookies(cookie)

page = context.new_page()

api_response_data = []

url_to_capture = 'https://edith.xiaohongshu.com/api/sns/web/v1/search/usersearch'

page.on('response', lambda response: capture_response(response, url_to_capture, api_response_data))

page.goto("https://www.xiaohongshu.com/search_result/?keyword=%25E5%25B0%258F%25E4%25B9%258C%25E8%258B%258F\&source=web_explore_feed\&type=51")

page.wait_for_load_state('load')

page.locator('//div[text()=" 用户"]').click()

page.wait_for_event('response')

#page.wait_for_timeout(3000)

while True:

page.mouse.wheel(0, 1000)

#page.wait_for_timeout(1000)

try:

page.wait_for_selector('//div[text()=" - THE END - "]',timeout=50)

print("下拉结束")

break

except Exception as e:

print("继续下拉")

pass

page.wait_for_load_state('load')

#print(page.content())

print(len(api_response_data))

#browser.close()

for k in api_response_data:

for i in k['data']['users']:

print(i['name'])

print(i['sub_title'])

print(i['image'])

print("====================================")

相关推荐
紫金修道24 分钟前
【DeepAgent】概述
开发语言·数据库·python
书到用时方恨少!31 分钟前
Python multiprocessing 使用指南:突破 GIL 束缚的并行计算利器
开发语言·python·并行·多进程
Warson_L1 小时前
Python 常用内置标准库
python
Warson_L1 小时前
Python 函数的艺术 (Functions)
python
Warson_L1 小时前
Python 流程控制与逻辑
后端·python
long_songs2 小时前
手柄键盘映射器【github链接见文末 】
python·游戏·计算机外设·pygame·软件推荐·手柄映射键盘
必然秃头2 小时前
Python 环境安装及项目构建指南
python
Warson_L2 小时前
Python 四大组合数据类型 (Collection Types)
后端·python
廋到被风吹走2 小时前
【AI】Codex 多语言实测:Python/Java/JS/SQL 效果横评
java·人工智能·python
Warson_L2 小时前
Python 数据类型核心笔记
python