Je dois gratter des pages de facebook pour mes études et j'ai un problème avec ceci. Je suis débutant en python. J'ai trouvé un code python sur github: https://github.com/precognox-admin/FBscraper/blob/master/src/scrapeFB.pyComment puis-je corriger python 2.7 keyerror? (Essayer de srcape facebook pages)
Voici un morceau de code:
def write_data(self, d):
date_inserted = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
messages = d['data']
self.no_messages += len(messages)
for message in messages:
person_name = message['from']['name']
person_id = message['from']['id']
person_hash_id = hashlib.md5(person_id.encode('utf-8')).hexdigest()
published_date = message['created_time']
published_date = datetime.strptime(published_date, "%Y-%m-%dT%H:%M:%S+%f").strftime("%Y-%m-%d %H:%M:%S")
post_type = message['type']
post_id = message['id']
org_id = post_id.split('_')[0]
status_id = post_id.split('_')[1]
post_link = 'https://www.facebook.com/%s/posts/%s' % (org_id, status_id)
Quand je veux exécuter le fichier .py je reçois ce message d'erreur:
Traceback (most recent call last):
File "FBscraper/src/scrapeFB.py", line 325, in <module>
s.scrape()
File "FBscraper/src/scrapeFB.py", line 264, in scrape
self.write_data(d)
File "FBscraper/src/scrapeFB.py", line 91, in write_data
person_name = message['from']['name']
KeyError: 'from'
Je sais que cela signifie que la clé "from" n'existe pas mais qu'elle devrait l'être. Voici un JSON par exemple:
{
"posts": {
"data": [
{
"comments": {
"data": [
{
"created_time": "2017-09-17T08:42:41+0000",
"from": {
"name": "Rafiq Ahmed",
"id": "10207278423025677"
},
"message": "Admirable and applaudable under the
circumstances!",
"id": "10155950241431323_10155950367031323"
}
J'ai lu et whatched et documentations lu tutotrials sur youtube et sur d'autres côtés. J'ai essayé la méthode .get() aussi mais ça ne marche pas. :/