Получить список городов vk api

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

vk_api_example / getCity_vk.py /

Code definitions
Code navigation index up-to-date

  • Go to file T
  • Go to line L
  • Go to definition R
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
58 lines (41 sloc) 1.77 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Получаем список городов мира с использованием API VK.COM и средств php+mysql — Урок 1 часть 3

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# TODO Получить список городов по ключевому слову в ВК
«»»
Консольное приложение Python 3.5
Простой пример применения VK API для получения списка городов по ключевому слову.
Выдаёт список городов по ключевому слову в консоль в формате csv.
На входе будет ключевое слово keyword, а на выходе список городов в базе ВК
«»»
import sys
import vk
import auth_vk
VERSION = ‘1.0.00 (21.09.2019)’
AUTHOR = ‘Deviur (https://github.com/deviur)’
v = ‘9.95’
def get_city_id ( keyword ):
return api . database . getCities ( country_id = 1 , q = keyword )[ ‘items’ ][ ‘id’ ]
def main ():
INFO = »’
Программа проверки авторизации в ВК.
Используется всеми программами пакета vk_api_example в качестве библиотеки.
Version: %s
Author: %s
——— Результаты ——
»’ % ( VERSION , AUTHOR )
print ( INFO )
if len ( sys . argv ) > 1 :
keyword = sys . argv [ 1 ]
else :
keyword = «Балашиха»
session = auth_vk . auth_vk_token ()
api = vk . API ( session , v = v )
# Запрос списка городов России (Cities) по ключевому слову
Cities = api . database . getCities ( country_id = 1 , q = keyword )[ ‘items’ ]
# Выводим шапку списка городов
print ( «id; title» )
# Выводим список городов по запросу на экран
for city in Cities :
print ( city [ ‘id’ ], «;» , city [ ‘title’ ])
if __name__ == «__main__» :
main ()
Еще по теме:  Как сделать чтобы плейлист в ВК попал в рекомендации

Бот ВКонтакте на Python #1 | Парсинг ВКонтакте

  • Copy lines
  • Copy permalink
  • View git blame
  • Reference in new issue

Источник: github.com

Получаем i18n список стран, регионов, населенных пунктов из ВКонтакте

Получаем i18n список стран, регионов, населенных пунктов из ВКонтакте

2013-12-04 в 17:47, admin , рубрики: web-разработка, Вконтакте API, географические наименования, Геоинформационные сервисы, метки: web-разработка, вконтакте api, географические наименования

Получить базу данных стран, регионов, населенных пунктов с переводом названий и связями бесплатно и без регистрации? Это реально!

При разработке небольшого стартап-проекта с большими амбициями столкнулся с необходимостью в базе данных стран, регионов и городов, с переводом названий хотя бы на самые распространенные языки (английский, русский, испанский, немецкий и т. д.). Готовое решение найдено не было, поэтому стал искать источники, из которых можно спарсить необходимые данные. На ум сразу пришли известные социальные сети. В этой статье уже описывалось получение данных из ВКонтакте, но покопавшись в документации API ВКонтакте, был приятно удивлен, найдя открытые документированные методы получения геоданных:

database.getCountries — Возвращает список стран.

database.getRegions — Возвращает список регионов.

database.getCities — Возвращает список населенных пунктов.

database.getCountriesById — Возвращает информацию о странах по их идентификаторам

database.getCitiesById — Возвращает информацию о городах по их идентификаторам.

Это основные, интересные нам методы, к тому же не требующие авторизации и использования токенов. Больше методов можно посмотреть в разделе документации.

Пример url для обращения к методу получения списка стран представлен ниже (аналогично происходит обращение по протоколу https):
http://api.vk.com/method/database.getCountries?v=5.5count=10

Посмотреть результат

Параметры:
v — указывает на версию API. В разных версиях структура JSON будет разной. Например, начиная с версии 5.0 добавлено значение count, которое содержит общее количество элементов в выборке и при совместном использовании с параметром offset поможет получить все значения. По умолчанию данные возвращаются в старой версии (видимо для совместимости со старыми приложениями).
count — максимальное количество значений, возвращаемых методом. Максимальное значение параметра, которое можно задать, составляет 1000 элементов. Минимальное и значение по умолчанию для каждого метода может отличаться и следует сверяться с документацией.
need_all — необязательный параметр, по умолчанию равен «0», указывает на то, что не следует производить выборку небольших регионов/стран/населенных пунктов
Остальные параметры для каждой функции расписывать нет смысла, так они есть в официальной документации, перейдем же к неофициальным возможностям:

Еще по теме:  Что такое произошла ошибка на сервере повторите попытку позже Вконтакте

Получаем список стран для различных языков

array( ‘method’ => «GET», ‘header’ => «Accept-language: enrn» . «Cookie: remixlang=$langrn» ) ); $methodUrl = ‘http://api.vk.com/method/database.getCountries?v=5.5count=1000’; $streamContext = stream_context_create($headerOptions); $json = file_get_contents($methodUrl, false, $streamContext); $arr = json_decode($json, true); echo ‘Total countries count: ‘ . $arr[‘response’][‘count’] . ‘ loaded: ‘ . count($arr[‘response’][‘items’]); print_r($arr[‘response’][‘items’]);

Стоит обратить внимание, что метод пытается вернуть данные на языке, указанном в cookie параметре remixlang. Поэтому подставив числовое значение необходимого языка, получим данные на необходимом языке, если присутствует перевод. Страны переведены все, вроде бы на все языки, доступные в социальной сети. Для регионов и городов: если перевод отсутствует (мелкие населенные пункты, регионы небольших стран), то получим значение на популярном в данном регионе языке например в африканских странах, на английском, для стран СНГ — русском.

Вот краткий список идентификаторов языков:

Язык Значение remixlang
Русский 0
Украинский 1
Английский 3
Испанский 4
Португальский 12
Немецкий 6
Французский 16
Итальянский 7

Получаем список регионов для различных языков

Перечень параметров, для метода и описание можно посмотреть в документации. Однако стоит заметить, что возвращенный JSON может быть пустым, т. е. не для всех стран могут быть заданы регионы, в таком случае, при получении списка городов параметр region_id можно опустить.

Получаем список населенных пунктов

Пример url для обращения к методу получения списка городов для страны заданной, параметром country_id (обязательный параметр) и региона region_id (необязательный параметр):
http://api.vk.com/method/database.getCities?v=5.5region_id=1045244need_all=1 «GET», ‘header’ => «Accept-language: enrn» . «Cookie: remixlang=$langrn» ) ); $methodUrl = ‘http://api.vk.com/method/database.getCities?v=5.5region_id=’ . $regionId . ‘need_all=1 $streamContext = stream_context_create($headerOptions); $json = file_get_contents($methodUrl, false, $streamContext); $arr = json_decode($json, true); echo ‘Total cities count: ‘ . $arr[‘response’][‘count’] . ‘ loaded: ‘ . count($arr[‘response’][‘items’]); print_r($arr[‘response’][‘items’]);

Возвращаемые данные для каждого населенного пункта могут также содержать следующие параметры:
area — название района (провинции и т. д.)
important равное «1» — обозначение крупных городов, появляется только при использовании параметра need_all

Еще по теме:  Как редактировать ссылки Вконтакте

Внимание! Некоторые регионы могут не содержать населенных пунктов (или сами являться населенными пунктами, как я понял).

Коллизии

Некоторые полученные значения могут содержать спецсимволы, теги (например и
).

PS

На данный момент все нюансы, которые заметил при получении данных описал в статье. Получил сырой дамп, наспех написанным парсером с ошибкой (в дампе не выгружены города, не относящиеся ни к одному из регионов). Процесс выгрузки занял 4 часа. При импорте в Postgres вылетали ошибки, возникающие из за недостаточного экранирования некоторых символов. Через несколько дней планирую переписать парсер и сформировать более «чистый» дамп + сделать дампы в нескольких форматах.

Сырой дамп загружает:
234 страны
3721 регионов
1896563 городов

Переводы: Русский, Украинский, Английский, Испанский, Португальский, Немецкий, Французский, Итальянский

Источник: www.pvsm.ru

vk api парсинг стран и городов

Предо мной, стояла задача интегрировать в сайт бд стран и городов. Прочел несколько статей и решил интегрировать с api в контакте. На локальном сервере все настроил, работает, а на удаленном данном сервере, данные не получает вот код:

$lang = 3; $headerOptions = array( ‘http’ => array( ‘method’ => «GET», ‘header’ => «Accept-language: enrn». «Cookie: remixlang=$langrn» ) ); $methodUrl = ‘http://api.vk.com/method/database.getCountries?v=5.5 $streamContext = stream_context_create($headerOptions); $json = file_get_contents($methodUrl, false, $streamContext); $countries = json_decode($json, true); return $countries;

Отслеживать

72.1k 11 11 золотых знаков 87 87 серебряных знаков 171 171 бронзовый знак

задан 25 янв 2016 в 14:18

535 1 1 золотой знак 4 4 серебряных знака 22 22 бронзовых знака

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...