代码说明:
1.现成的程序,写的简单,流程化的东西,当然代码简化的方面有很多,懒得整
2.最终出来的数据:笔记id 笔记标题 笔记喜欢 笔记图片地址 笔记发布时间 笔记用户id 笔记用户名
3.关于这个笔记图片地址,教大家一个excel中显示图片的技巧,根据链接,新列里面 公式 ="
4.小红书app不会爬,太难了对于我,所以着手小程序,相信大家搜索出来的大部分都是小程序,自己做一个简单的记录,下面的程序可以直接复制
5.对了,小程序不会出来太多,如果搜索方式是全部的话,只会出来一百条,所以就五页,可以多次运行代码,但是也就是多一两条,所以可以换搜索方式来获取更多,或者换一下相关的关键词,比如我下面搜索的是“五谷磨房黑芝麻丸”,可以换成“五谷磨房黑芝麻球”,笔记会出来更多,灵活运用
6.headers会简单操作fidder或者charles抓包的估计都可以抓出来,下面关键参数里面前两个不用改,获取一次就行,但是也可以微信号多点搞,避避风控,当然,获取搜索页的风险小一点,不会被风控,获取作者个人主页的数据会被风控,基本上二三十个就会被风控,解决方式下一章讲
7.关键参数:
Authorization
Device-Fingerprint
X-Sign
8.会有三篇文章,这是第一篇,总的来看吧,我简单粗暴的爬,大家也简单粗暴的看,下面代码没有笔记内容,第三篇在网页端爬内容
'''
Created on 2022年2月18日
@author: admin
'''
import requests
import warnings
import pandas as pd
import time
import hashlib
from urllib.parse import quote
warnings.filterwarnings("ignore")
id_list=[]
title_list=[]
likes_list=[]
cover_url_list=[]
time_list=[]
user_id_list=[]
user_nickname_list=[]
def get_xiaohongsu(word,page):
keyword = quote(word, 'utf-8')
'''
改搜索方式会出来更多 sortBy
general 全部
hot_desc 最热
create_time_desc 按时间发布
'''
url=f"https://www.xiaohongshu.com/fe_api/burdock/weixin/v2/search/notes?keyword={keyword}&sortBy=hot_desc&page={page}&pageSize=20&prependNoteIds=&needGifCover=true"
x_sign = 'X' + hashlib.md5(f"/fe_api/burdock/weixin/v2/search/notes?keyword={keyword}&sortBy=hot_desc&page={page}&pageSize=20&prependNoteIds=&needGifCover=trueWSUDD".encode(encoding='UTF-8')).hexdigest()
headers={
"Host": "www.xiaohongshu.com",
"Connection": "keep-alive",
"Authorization": "改成自己的",
"Device-Fingerprint": "改成自己的"
,"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
,"X-Sign": f"{x_sign}",
"content-type": "application/json",
"Referer": "https://servicewechat.com/wxb296433268a1c654/60/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
}
res=requests.get(url=url,headers=headers,verify=False)
for i in res.json()["data"]["notes"]:
id_list.append(str(i["id"]))
title_list.append(i["title"])
likes_list.append(str(i["likes"]))
cover_url_list.append(i["cover"]["url"]+".jpg")
time_list.append(i["time"])
user_id_list.append(i["user"]["id"])
user_nickname_list.append(i["user"]["nickname"])
dict_list={}
word="五谷磨房黑芝麻丸"
for i in range(1,6):
try:
print(f"第{i}页")
time.sleep(2)
get_xiaohongsu(word,i)
except Exception as e:
print(e)
pass
dict_list["笔记id"]=id_list
dict_list["笔记标题"]=title_list
dict_list["笔记喜欢"]=likes_list
dict_list["笔记图片地址"]=cover_url_list
dict_list["笔记发布时间"]=time_list
dict_list["笔记用户id"]=user_id_list
dict_list["笔记用户名"]=user_nickname_list
data_=pd.Dataframe(dict_list)
data_.to_excel("五谷磨房黑芝麻丸笔记数据1.xlsx")



