Как в вк сделать гиперссылку на пост: подбор и сравнение вкладов, кредитов, кредитных карт, автострахование, калькулятор ОСАГО и каско, рейтинг страховых компаний

python — Получить оригинальную ссылку в vk api

Задать вопрос

Вопрос задан

Изменён 7 лет 11 месяцев назад

Просмотрен 2k раз

Здравствуйте.

Решил для себя написать скрипт, который ищет посты с ключевыми словами в VK. Для этого я воспользовался следующим методом VK API. Хочется также уметь получать ссылку на оригинальный пост. Есть ли какие-то удобные средства, чтобы это сделать?

Сейчас написано, мягко говоря, костыльно:

    resp = requests.get(url).json()['response']
    for i in range(1, len(resp)):
      if (resp[i]['reposts']['count'] > 10):
        curId = resp[i]['owner_id']
        club = ""
        if (curId >= 0):
          typeId = "user"
        else:
          typeId = "group"
        postId = resp[i]['id']
        originalUrl = 'https://vk.
com/'+resp[i][typeId]['screen_name']+'?w=wall'+str(curId)+'_'+str(postId) print originalUrl print resp[i]['text'].encode('cp866', errors='replace') print ''

Кроме того, если страница типа «public», то в «screen_name» все равно возвращается «clubXXX» и ссылка оказывается нерабочей.

Заранее спасибо.

  • python
  • vkontakte-api

Чтобы получить ссылку на оригинальный пост, достаточно знать id поста и id стены, на которую пост закинули.

Вот такая ссылка вполне работоспособна: http://vk.com/wall-76229642_54082

Соответственно, нужно просто слегка подкорректировать код

originalUrl = 'https://vk.com/wall'+str(curId)+'_'+str(postId)

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *