Ich habe this tutorial verfolgt, um einige Seiteninformationen von fb herunterzuladen.Heruntergeladene Seitenbeiträge von Facebook. Wie gehe ich mit den JSON-Daten um?
Ich benutze Python 3.5 und das Tutorial verwendet Python2.
Ich hatte einige Probleme mit einem HTTP-Fehlercode 400, im Grunde gesagt, ich musste das https-Protokoll anstelle von http verwenden. Also habe ich jetzt im Idle-Test getestet, dass die Daten kommen und es einem Neuling wie mir als JSON aussieht. Aber wenn ich es den json.loads versuchen Passieren es gibt diesen Fehler
Traceback (most recent call last):
File "C:\Users\Levo\Desktop\facebookscrape.py", line 38, in <module>
testFacebookPageData(page_id, access_token)
File "C:\Users\Levo\Desktop\facebookscrape.py", line 34, in testFacebookPageData
data = json.loads(requests_until_succeed(url))
File "C:\Users\Levo\AppData\Local\Programs\Python\Python35\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
Neben der Verwendung der urllib Bibliothek statt der urllib2 Bibliothek und https statt http tun, was ich nicht, dass ich falsch mache? ist die Verschlüsselung von https das Problem?
def requests_until_succeed(url):
req = urllib.request.Request(url)
success = False
while success is False:
try:
response = urllib.request.urlopen(req)
if response.getcode() == 200:
success = True
except Exception as e:
print(e)
time.sleep(5)
print ("Error for URL %s: %s" % (url, datetime.datetime.now()))
return response.read()
def testFacebookPageData(page_id, access_token):
base = "https://graph.facebook.com/v2.6"
node = "/" + page_id + "/feed"
parameters = "/?access_token=%s" % access_token
url = base + node + parameters
data = json.loads(requests_until_succeed(url))
print(json.dumps(data, indent = 4, sort_keys=True))
testFacebookPageData(page_id, access_token)