如何避免Facebook账号封禁并解决群组爬取无帖子报错
解决Facebook爬虫报错:
WARNING:facebook_scraper.page_iterators:No raw posts (<article> elements) were found in this page 问题场景
登录Facebook爬取群组内容用于帖子评论情感分析,首次爬取导致账号封禁,找回账号后运行代码出现上述警告,无法获取帖子数据。
涉事代码
import scipy as sp from facebook_scraper import get_posts import pandas as pd from textblob import TextBlob as tb import time
cookies = {"c_user": "1000092631152643", "xs":"33%3AQklvQk0aNZ5TWw%3A2%3A1667187574%3A-1%3A1593AAcVH4RpjVV3E7" }
listposts = [] options = {"comments": True, "reactors": True, "progress": True, "posts_per_page": 200} group_id = 944651605603625 for post in get_posts(group = group_id, extra_info = True, pages = 100, options = options, cookies=cookies): print(post['text'][:50]) time.sleep(20) listposts.append(post)
解决办法
更新Cookie:账号找回后Facebook会重置会话,你当前的
xs和c_user已失效。重新从登录后的浏览器提取最新Cookie:- 浏览器登录Facebook并进入目标群组
- F12打开开发者工具,切换到
Application标签 - 在
Cookies→facebook.com下复制新的c_user和xs值替换代码里的旧Cookie
降低爬取强度:封禁后的账号处于风控监控期,单次请求200条帖子太激进,先调小参数:
# 减少单页请求数量 options = {"comments": True, "reactors": True, "progress": True, "posts_per_page": 50} # 延长休眠时间,甚至随机化间隔 import random time.sleep(random.randint(30, 60))同时把
pages=100改成pages=5先测试,能正常获取再逐步增加。确认群组权限:手动访问群组页面,确保账号是群组成员,且群组不是私密/受限类型——私密群组即使登录也爬不到内容,除非你是管理员。
升级facebook_scraper库:Facebook页面结构经常更新,旧版本库可能适配失效,执行升级命令:
pip install --upgrade facebook-scraper
内容的提问来源于stack exchange,提问作者Akpakli Edudzi
相关产品推荐
相关产品推荐

