vk中如何获取特定用户在特定社区帖子下墙上留下的所有评论?
我查看了 vk api 中存在的所有方法,但尚未找到完成此任务的方法。
作为这个问题的初始数据,给出了用户 ID 和社区 ID。
这是我如何尝试实现它的示例:
for i in range(200):
url = "https://api.vk.com/method/wall.get?owner_id=%s&offset=%s&count=1" % (self.text1.toPlainText(), i)
response = requests.get(url).text
parsed_string = json.loads(response)
url1="https://api.vk.com/method/wall.getComments?owner_id=%s&post_id=%s&count=100" %(self.text1.toPlainText(), parsed_string['response'][1]['items']['id'])
response1 = requests.get(url1).text
parsed_string1 = json.loads(response1)
for j in range(1, len(parsed_string1['response'])):
if parsed_string1['response'][j]['items']['from_id']==self.text2.toPlainText():
item1 = QTableWidgetItem(parsed_string1['response'][j]['items']['text'])
item2 = QTableWidgetItem(str(datetime.datetime.fromtimestamp(parsed_string1['response'][j]['items']['date'])))
self.tablewidget.setItem(i-1, 0, item1)
self.tablewidget.setItem(i-1, 1, item2)
但是在这种情况下,对服务器的请求太频繁了,这个选项太沉闷了。请告诉我应该朝哪个方向前进以及您对这个话题有什么想法。
VK API 允许您在一次请求中仅获取特定对象的评论。例如,您可以使用 获取特定墙贴的评论列表
wall.getComments
。从此列表中,您需要选择所需用户的评论。要一次获得对多个帖子的评论,您可以使用存储过程或execute方法。execute 方法将存储过程代码作为参数并执行它。VKontakte 支持在一个过程中最多访问 25 个数据库的存储过程。因此,我们可以同时获得对多个帖子的评论。
如何写程序
为此,您可以使用 VK 提供的功能。首先,您需要一个应用程序来访问 API。您可以在此处创建它(可点击) - 按钮
Создать приложение
。创建后,转到редактирование
应用程序,转到该部分Хранимые процедуры
并单击Добавить новую процедуру
。现在我们需要编写程序本身。以下过程将返回特定用户对 10 个帖子的评论:
如何调用存储过程
我们可以通过两种方式调用它:
因此,要获得评论列表,您需要联系:
https://api.vk.com/method/execute.getCommentsFromPosts
传递适当的参数。https://api.vk.com/method/execute
传递。code