# WeiboCrawler **Repository Path**: kaze_to_hi/WeiboCrawler ## Basic Information - **Project Name**: WeiboCrawler - **Description**: 自己用的微博爬虫 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-07 - **Last Updated**: 2025-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微博cookie 字符串 # 微博 Cookie 获取方法 ## 1. 手动获取 Cookie(推荐方式) ### Chrome/Firefox 等现代浏览器: 1. **登录微博**:访问 [https://weibo.cn](https://weibo.cn) 并登录你的账号 2. **打开开发者工具**: - Chrome: 按 `F12` 或 `Ctrl+Shift+I` - Firefox: 按 `F12` 或 `Ctrl+Shift+M` 3. **切换到 Application/Storage/Cookies 标签** 4. **查找 Cookie**: - 在过滤器中输入 `.weibo.cn` - 查找包含 `SUB`, `SSOLoginState`, `SCF`, `SUBP` 等关键字的 Cookie 5. **复制 Cookie 字符串**: - 将所有关键 Cookie 项组合成字符串,格式为: ``` SUB=xxx; SSOLoginState=xxx; SCF=xxx; SUBP=xxx; ... ``` ## 2. 使用 Selenium 自动化获取 ```python from selenium import webdriver # 初始化浏览器 driver = webdriver.Chrome() # 访问微博 driver.get('https://weibo.cn') # 登录你的微博账号(手动操作) # 获取 Cookie cookies = driver.get_cookies() # 构造 Cookie 字符串 cookie_str = '; '.join([f"{cookie['name']}={cookie['value']}" for cookie in cookies]) print(cookie_str) # 关闭浏览器 driver.quit() ``` ## 3. 通过移动端 App 获取(适用于手机端爬虫) ### Android 设备: 1. 安装 HTTP 抓包工具(如 Charles 或 Fiddler) 2. 在微博 App 中进行操作 3. 抓取请求头中的 Cookie 信息 ### iOS 设备: 1. 使用 Stream 流畅或 Proxyman 进行抓包 2. 操作微博 App 3. 提取请求头中的 Cookie ## 4. 注意事项 1. **Cookie 有效期**:微博 Cookie 通常会定期失效,需要重新获取 2. **反爬机制**:频繁请求可能导致 IP 被封,建议添加随机延迟 3. **安全存储**:不要将 Cookie 泄露给他人,以防账号被盗 4. **多账户管理**:建议准备多个账号轮换使用,避免单一账号频繁请求 ## 5. 示例 Cookie 字符串 ``` SINAGLOBAL=9586039181107.584.1700131050731; ULV=1741919978564:63:1:1:9782236051301.93.1741919978481:1736127029099; XSRF-TOKEN=kKHgXNxMDjb9HlYF8nAa_FjX; ALF=1748799619; SUB=_2A25FEXPVDeRhGeBL7lUV9C_JzjiIHXVmb4kdrDV6PUJbktAYLWaskW1NRu7oEkIZWq2bCuvMA4vpNTC1ezDnhT2f; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WFVceO6z43BbvamNp5sASPg5JpX5KMhUgL.FoqfSKMXSh2fSKB2dJLoIX.LxKBLB.zLB.zLxK-L12qLBoqLxKBLBonL1h.LxKqLBozL1K5LxK.LBKeL12Hki--Ri-2pi-2fi--Ni-88iK.Ni--fi-82iK.7 ``` > ⚠️ 注意:请勿泄露你的真实 Cookie 信息。以上示例仅为格式说明,请使用自己的实际 Cookie。 ## 6. 维护有效的 Cookie 1. **定期更新**:设置定时任务定期更新 Cookie 2. **异常处理**:在代码中检测 403 错误并触发 Cookie 更新流程 3. **多账号轮换**:维护一个 Cookie 池,轮流使用不同账号的 Cookie ```python def check_cookie_validity(self): """检查 Cookie 是否有效""" url = f'https://weibo.cn/{self.user_id}/info' response = self._make_request(url) if not response: return False html = BeautifulSoup(response.text, 'lxml') user_info_text = html.find_all('div', class_='c') # 如果能成功获取用户信息,说明 Cookie 有效 return len(user_info_text) > 1 ``` # 正式爬取 爬取博主的每一条微博。 用一个 config.json 文件来控制爬取微博的参数。 每一条微博的唯一标识符?是什么? 用一个参数控制, 1. 只爬取微博,不爬取评论区数据 2. 如果评论区出现博主回复,那么爬取所有的评论数据。 3. 无差别爬取微博,以及对应的评论区数据。 时间段: 1. 用户要求爬取某个 datetime 到某个 datetime 的微博? 2. 用户要求爬取最近7天的微博? 自定义 regex 分类系统,爬取的时候根据正则表达式分类,同时增加一个字段。 用一个文件用来储存 匹配规则regex,分类序数,分类,。 提示: 某一条微博的正文: id='PpElH0Ij5' https://weibo.cn/comment/{id}?ckAll=1 某一条微博的图片页: https://weibo.cn/mblog/pic/PgZYE6mzP?picId=007rwJLtly1hz513g7a18j30u01t2jyp&size=bmiddle&rl=0