小红书反爬虫技术让舆情监测软件厂商投降了?
最近几个月,小编都没有分享小红书反爬虫数据的算法逻辑,还有最近小红书的爬虫爬取数据情况,那么今天小编应广大客户后台的邀请,再次来给大家分享一下近期各大舆情监测软件厂商跟小红书网站的爬虫算法大战战况如何?其实最近几个月,小红书虽然每个月都会有几次算法更新迭代,但是对整个舆情监测行业爬取到小红书数据的影响较小。用一句人话来说就是:现有的爬虫算法可以稳定的爬到小红书的60%以上的数据,但是还是没有办法突破100%,但是也不会掉到之前的20%左右。
难道是舆情监测软件厂商彻底被小红书的反爬虫技术打败了?其实不是的,各大厂商还在想法设法搞到更多小红书的数据,那么小编今天就来分享一个AI抓取小红书数据的算法逻辑跟部分代码:
import requests
from bs4 import BeautifulSoup
import time
headers = {
“User‑Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36”,
“Referer”: “https://www.xiaohongshu.com/”,
# 必须填入你浏览器登录后的Cookie,频繁请求会被平台拦截
“Cookie”: “xxx 你的浏览器cookie”
}
def get_note_demo(note_id: str):
“””获取笔记页面演示(仅结构,实际小红书返回加密JSON)”””
url = f”https://www.xiaohongshu.com/discovery/item/{note_id}”
try:
resp = requests.get(url, headers=headers, timeout=10)
if resp.status_code != 200:
print(f”访问失败,状态码:{resp.status_code}”)
return None
soup = BeautifulSoup(resp.text, "html.parser")
# 真实小红书数据不在HTML标签,是页面内嵌window.__INITIAL_STATE__ JSON
# soup无法直接解析内容,需要提取页面script标签内的JSON字符串
script_list = soup.find_all("script")
for script in script_list:
if script.string and "__INITIAL_STATE__" in script.string:
print("拿到页面初始化状态字符串(需要截取、json解析)")
break
time.sleep(2)
except Exception as e:
print(f"异常:{e}")
if name == “main“:
get_note_demo(“65xxxxxxxxx”)
目前采用采用AI可以在时效性跟全面性提高20%左右的工作效率,目前这套算法还不成熟,还要不断的训练AI,相信在不久的将来,可以提高50%左右的效率。
只要小红书全量数据一日没有拿下,舆情监测软件厂商的爬虫工程师们任务永远不会终止。