[问题] 抓取脸书资料限定日期范围

楼主: 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