def get_user_info(user_id,info_type,u_access_token = None):
if info_type == "user_friends":
params = r"friends"
elif info_type == "user_likes":
params = r"likes"
elif info_type == "user_feed":
params = r"feed?
fields=permalink_url,from,story,type,message,link,created_time,updated_time,likes.limit(0).summary(total_count),comments.limit(0).summary(total_count)"
# To get the access token
if u_access_token:
FB_access_token = u_access_token
else:
FB_access_token = get_access_token.get_fb_token(glovar.APP_ID, glovar.APP_SECRET)
graph = facebook.GraphAPI(FB_access_token)
user_info = graph.get_connections(user_id, params)
if "Error" in user_info:
print("Error", user_info["Error"]["message"])
return []
user_info_data = []
while(user_info["data"]):
if "Error" in user_info:
print("Error", user_info["Error"]["message"])
return []
if "data" in user_info:
try:
for user_info_item in user_info["data"]:
if info_type == "user_feed":
# Convenience:Add empty field for message/link if not existent
user_info_item["message"] = user_info_item["message"] if "message" in user_info_item else ""
user_info_item["link"] = user_info_item["link"] if "link" in user_info_item else ""
user_info_data.append(user_info_item)
user_info = requests.get(user_info["paging"]["next"]).json()
elif info_type == "user_friends" or "user_likes":
user_info_data.append(user_info_item)
#if only one page or in the last page, ["paging"]["cursors"]["after"] is unrecognized code
if "https://graph.facebook.com" in user_info["paging"]["cursors"]["after"]:
user_info = requests.get(user_info["paging"]["cursors"]["after"]).json()
except KeyError:
break
print(user_info_data)
Das Python-Programm anhängen versuchen, Kontoinformationen erhalten, wollen facebook kann, wie meine Freunde, mag, Futtermittel ... aber läuft wirft er einen Fehler:Memory wenn
Traceback (most recent call last):
File "C:/Python/PyCharmProject/FaceBookCrawl/FBCrawl.py", line 254, in <module>
user_info_download.get_user_info(user_id,user_info_type,u_access_token)
File "C:\Python\PyCharmProject\FaceBookCrawl\user_info_download.py", line 51, in get_user_info
user_info_data.append(user_info_item)
MemoryError
Process finished with exit code 1
Er verweist auf :
elif info_type == "user_friends" or "user_likes":
user_info_data.append(user_info_item)
als die Aussage des MemoryError
verursacht. Bitte sagen Sie mir, warum und wie Sie es korrigieren können.
Klingt, dass das Skript nicht mehr genügend Arbeitsspeicher hat. Es gibt jedoch nicht genug Informationen in Ihrer Frage, um zu sagen, warum. [_Wie kleine Programme debuggen_] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) könnte Ihnen helfen, den Grund herauszufinden. – martineau
Verwenden Sie eine 32-Bit-Python-Installation? Oder mit einem 32-Bit-Computer? Dieser Fehler bedeutet, dass Sie nicht genügend Speicher haben. –