Python小红书关键词爬虫
时间: 2025-04-26 22:00:03 浏览: 66
### 实现小红书关键词信息的网页爬虫
对于构建用于抓取小红书平台上特定关键词相关信息的Python爬虫程序,可以采用Selenium库模拟浏览器行为并执行JavaScript操作以加载动态内容。下面展示了一个简化版的方法论以及代码片段。
#### 使用Selenium与BeautifulSoup组合进行数据收集
考虑到目标网站的内容可能是由JavaScript渲染而成,因此选择Selenium作为主要工具来处理这类情况特别合适。此方法允许自动化Web浏览器动作,比如点击按钮或滚动页面到底部以便完全加载所需的数据[^1]。
```python
from selenium import webdriver
from bs4 import BeautifulSoup
import time
# 初始化Chrome驱动器实例
driver = webdriver.Chrome()
def search_keyword(keyword):
url = f"https://www.xiaohongshu.com/web_search/s/{keyword}"
driver.get(url)
# 让页面有时间加载完毕
time.sleep(3)
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
# 向下滚动至页面底端
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 等待新内容加载完成
time.sleep(2)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
soup = BeautifulSoup(driver.page_source,'html.parser')
items = []
for item in soup.find_all('div', attrs={'class': 'note-item'}): # 假设这是笔记项的选择器路径
title_element = item.select_one('.title') # 替换成实际标题元素的选择器
link_element = item.select_one('a[href]')
media_type = "Video" if item.select_one(".play-icon") else "Image"
if title_element and link_element:
titles = title_element.text.strip()
links = "https:" + link_element['href']
items.append({
'Title': titles,
'Link': links,
'Type': media_type
})
return items
if __name__ == "__main__":
keyword = input("请输入要查询的关键字:")
results = search_keyword(keyword)
print(results[:5]) # 打印前五个结果示例
```
上述代码展示了如何利用Selenium自动打开指定链接,并持续向下滚动直到无法再加载更多条目为止。之后,它会解析HTML文档结构中的每一条记录,提取出标题、链接地址及媒体类型(即图片或视频),并将这些信息存储在一个列表里返回给调用者[^2]。
请注意,在实际应用中还需要考虑异常处理机制、代理设置等问题,确保程序稳定性和合法性。此外,频繁请求可能会触发反爬措施,建议合理安排间隔时间和遵守robots.txt协议规定。
阅读全文
相关推荐

















