python - “TypeError:'NoneType' 类型的参数不可迭代”当我尝试网络抓取时
问题描述
我试图通过过滤text
包含关键字的关键字来抓取 Facebook 页面"Pecahan setiap negeri (Kumulatif)
。
虽然最初它可以工作,但现在我无法再次运行它。它向我展示了
if wanted in post.get("text", ""):
TypeError: argument of type 'NoneType' is not iterable
首先,我以为我被 Facebook 禁止了,因为我一遍又一遍地循环。但是当我在没有if wanted in post.get("text") :
它的情况下进行测试时工作正常,所以我认为这不是 Facebook 的错。
我该如何解决这个问题?为什么它首先起作用但现在不起作用?
我的代码:
from facebook_scraper import get_posts
listposts = []
wanted = "Pecahan setiap negeri (Kumulatif)" # wanted post
for post in get_posts("myhealthkkm", pages=10):
if wanted in post.get("text") :
# print("Found", t)
listposts.append(post)
else:
pass
# print("Not found")
print(listposts)
解决方案
for
循环需要迭代才能运行,例如列表、字典range()
等。
get_posts("myhealthkkm", pages=10)
是传递给您唯一for
循环的内容,因此此 FN 必须返回None
- 这是不可迭代的。
你可以试试:
[...]
post_list = get_posts("myhealthkkm", pages=10)
print(type(post_list), post_list[:50])
for post in post_list:
[...]
更新:由于get_posts()
can的输出,在-loopNone
之外添加一个条件以仅循环for
if post_list is not None:
推荐阅读
- push-notification - Chrome 67+ 中的错误,永远不会显示权限窗口
- c# - 如何在包含本机内存的类上实现 AsSpan()?
- reactjs - 尝试使用 jwt 从反应登录 api 时出现 401 状态
- react-native - 如何防止我的 ImageBackground 在 React Native 中调整大小?
- python - ImportError:没有名为 flask_restful 的模块
- javascript - 是什么导致我的每个循环中出现 Uncaught TypeError?
- sql - 如何在 Moodle 中运行自定义 SQL 查询?
- jenkins - 詹金斯管道s3文件下载
- php - 如何在 laravel 中的 Controller 中绑定角色中间件
- git - git hooks - 获取 git commit id