[問題] 抓取臉書資料限定日期範圍

作者: p2p8ppp (給我錢)   2017-06-03 18:50:00
各位大大好
最近在抓臉書貼文的資料
可是因為要用的資料差不多是在2013年~2014年的貼文資料
但是目前都是從最新的貼文開始抓
這樣一來浪費時間跟資源
而且最後變成抓下來的行數太多 檔案開不起來= =
有沒有辦法直接從2014年開始往2013年抓呢?(我有辦法讓他抓到2013年的時候結束)
我使用下面網址的寫法
http://bhan0507.logdown.com/posts/1816236
import requests
import pandas as pd
from dateutil.parser import parse
#在Facebook Graph API Exploer取得token以及粉絲專頁的ID
token = '你的專屬token'
fanpage_id = '1502894619932654'
#建立一個空的list
information_list = []
#目標頁面
res =
requests.get('https://graph.facebook.com/v2.8/{}/posts?limit=100&access_token={}'.format(fanpage_id,
token))
page = 1
#API最多一次呼叫100筆資料,因此使用while迴圈去翻頁取得所有的文章
while 'paging' in res.json():
for index, information in enumerate(res.json()['data']):
print('正在爬取第{}頁,第{}篇文章'.format(page, index + 1))
#判斷是否為發文,是則開始蒐集按讚ID
if 'message' in information:
res_post =
requests.get('https://graph.facebook.com/v2.8/{}/likes?limit=1000&access_token={}'.format(information['id'],
token))
#判斷按讚人數是否超過1000人,若超過則需要翻頁擷取;當沒有人按讚時
,按讚人名與ID皆為NO
try:
if 'next' not in res_post.json()['paging']:
for likes in res_post.json()['data']:
information_list.append([information['id'],
information['message'], parse(information['created_time']).date(),
likes['id'], likes['name']])
elif 'next' in res_post.json()['paging']:
while 'paging' in res_post.json():
for likes in res_post.json()['data']:
information_list.append([information['id'],
information['message'], parse(information['created_time']).date(),
likes['id'], likes['name']])
if 'next' in res_post.json()['paging']:
res_post =
requests.get(res_post.json()['paging']['next'])
else:
break
except:
information_list.append([information['id'],
information['message'], parse(information['created_time']).date(), "NO",
"NO"])
if 'next' in res.json()['paging']:
res = requests.get(res.json()['paging']['next'])
page += 1
else:
break
print('爬取結束!')
麻煩各位大大了
作者: peefly (Peefly)   2017-06-03 19:23:00
可以加since和until參數來過濾時間範圍可以參考這篇用法 https://goo.gl/LCGnTs
作者: p2p8ppp (給我錢)   2017-06-03 19:31:00
謝謝大大 可是他這個用法是不是最多只能抓35天的資料orz可是我會抓到一年份的資料orz
作者: sky800507 (B翰)   2017-06-04 12:34:00
hi 部落格是我寫的XD,有在上面回覆你了
作者: p2p8ppp (給我錢)   2017-06-04 20:43:00
竟然XDDD 謝謝你的教學orz

Links booklink

Contact Us: admin [ a t ] ucptt.com