Open ChenYuyu1912 opened 4 years ago
感谢反馈。
按你的描述,如果某用户已经获取100条微博并且发布时间等于或大于2020-01-01,就结束这个用户的爬取。修改weibo.py的get_one_page方法: 原来:
def get_one_page(self, page):
...
created_at = datetime.strptime(
wb['created_at'], '%Y-%m-%d')
since_date = datetime.strptime(
self.user_config['since_date'], '%Y-%m-%d')
...
现在
def get_one_page(self, page):
...
created_at = datetime.strptime(
wb['created_at'], '%Y-%m-%d')
since_date = datetime.strptime(
self.user_config['since_date'], '%Y-%m-%d')
if len(self.weibo
) == 100 and created_at >= datetime.strptime(
'2020-01-01', '%Y-%m-%d'):
return True
...
上面可能获取多于100条微博,如某用户在2020-01-01之后发布了90条,之前发布了50条,程序就会爬取所有140条微博。如果你想在2020-01-01之后发布大于等于100条时获取100条,否则获取最新100条,只需要把上面的if语句改成if len(self.weibo)==100:就可以。
如果还有问题欢迎继续讨论
您好,
如果我有一个很长的user_id_list,想要爬取里面各个用户从2020-01-01至今最新的100条微博,(也就是说,如果某用户在2020-08-26至2020-09-26期间发了100条微博,那我就只需要这100条微博的数据),如果在2020-01-01至今这个日期区间的微博不超过100条的话就是爬取所有微博。不知道我是否描述清楚了……想问一下可以通过修改程序来解决吗?
谢谢!