Python проверка количества #хештегов ВК

(Ответов: 7, Просмотров: 2399)
  1. Дипломник Аватар для webm0ney
    • Регистрация: 31.05.2011
    • Сообщений: 232
    • Репутация: 33
    Всем привет. Для некоторых нужд необходимо проверить количество новостей по хештегам ВК, сделал бы и ручками все... но их очень много ((
    В голову пришла идея организовать это все через питон, но опыта работы с питоном ~ неделя.

    В общем есть список хештегов в txt документе вида:
    PHP код:
    #вася
    #петя
    #деньги
    #vkontakte 
    т.е. новый тег - с новой строки...

    Набросал заготовку, но как сделать чтобы брались теги из документа in.txt и в конечном итоге записывались в документ out.txt уже с количеством новостей по данному тегу вообще не пойму...

    В голове то все понятно - тут берется -> проверяется -> записывается уже с числом.... не понятно...

    Может кто поможет с данной задачей...

    PHP код:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    from __future__ import division
    import time
    from time import time 
    as timer
    import requests
    import json
    import os
    import os
    .path

    u'#я' # тег для поиска

    if True:
        
    import urllib
        q 
    urllib.quote(q.encode('utf-8'))
        
    url 'https://api.vk.com/method/newsfeed.search?q=%s&count=3&v=5.28' %(q)
        
    resp requests.get(url).json()['response']
        
    total_count resp['total_count']
        print 
    total_count 
    • 0
  2. Гуру Аватар для west0293
    • Регистрация: 09.06.2011
    • Сообщений: 1,025
    • Репутация: 342
    • Webmoney BL: ?
    webm0ney, на питоне, к сожалению, не шарю, набросал на php (сам еще учусь):

    PHP код:
    <?php
    header
    ('Content-Type: text/html; charset=UTF-8'); 
    include 
    'simple_html_dom.php';

    $fname "in.txt";
    $fileOut "out.txt";
    $file file($fname);

    $fp=fopen($fname,"w"); 
    $outText "";
        for(
    $i=0;$i<sizeof($file);$i++) { 
            
    $q urlencode($file[$i]);
            
    $url "https://api.vk.com/method/newsfeed.search?q={$q}&count=1&version=5.28"
            
    $json file_get_html($url); 
            
    $obj json_decode($json);
            
    $out str_replace("\n"""$file[$i]) . " " $obj->{'response'}[0] . "\n";
            echo 
    $out "<br />";
            
    $outText $outText $out;
        }
    fclose($file);
    $ff=fopen($fileOut,"w");
    fputs($ff$outText);
    fclose($ff);
    ?>
    Содержимое "in.txt":
    Код:
    #петя
    #вася
    #деньги
    #вконтакте
    #газмяс
    #игры
    #пирожок
    Выходной файл "out.txt":
    Код:
    #петя 390
    #вася 1000
    #деньги 1000
    #вконтакте 1000
    #газмяс 29
    #игры 1000
    #пирожок 1000
    Рядом с .php файлом должен лежать файл simple_html_dom.php.

    Скрипт отлично работает, сам только что прогонял. (Не забудьте Chmod 777 поставить на in.txt и out.txt).

    Минус в том, что если найденное количество постов >1000, то ВК говорит, что найдено 1000. Но это ВК так отдают ответ. Меньше 1000 считает правильно.


    webm0ney, кстати, "total_count" мне вк почему-то не отдает. В примере newsfeed.search он есть, а в ответе не приходит.
    Вот пример ответа:

    json

    {"response":[390,{"id":4652,"date":1424688794,"owner_id":42636396,"from_id":42636396,"post_type":"post","text":"Вот такие мы)<br>#петя @ дом","attachment":{"type":"photo","photo":{"pid":354749267,"aid":-7,"owner_id":42636396,"src":"http:\/\/cs622917.vk.me\/v622917396\/21561\/DavOOVHlfCs.jpg","src_big":"http:\/\/cs622917.vk.me\/v622917396\/21562\/Viqk0g0UPmo.jpg","src_small":"http:\/\/cs622917.vk.me\/v622917396\/21560\/gOWKQskpPh4.jpg","src_xbig":"http:\/\/cs622917.vk.me\/v622917396\/21563\/5mPpOwajblk.jpg","width":640,"height":640,"text":"","created":1424688794,"post_id":4652,"access_key":"e78d7303252d00c404"}},"attachments":[{"type":"photo","photo":{"pid":354749267,"aid":-7,"owner_id":42636396,"src":"http:\/\/cs622917.vk.me\/v622917396\/21561\/DavOOVHlfCs.jpg","src_big":"http:\/\/cs622917.vk.me\/v622917396\/21562\/Viqk0g0UPmo.jpg","src_small":"http:\/\/cs622917.vk.me\/v622917396\/21560\/gOWKQskpPh4.jpg","src_xbig":"http:\/\/cs622917.vk.me\/v622917396\/21563\/5mPpOwajblk.jpg","width":640,"height":640,"text":"","created":1424688794,"post_id":4652,"access_key":"e78d7303252d00c404"}}],"geo":{"type":"point","coordinates":"56.859874581856 60.625708626189","place":{"pid":0,"title":"Уральская улица, Екатеринбург","latitude":0.000000,"longitude":0.000000,"created":0,"icon":"http:\/\/vk.com\/images\/places\/place.png","type":0,"address":"","place_id":0,"country":"Россия","city":"Екатеринбург"}},"comments":{"count":0},"likes":{"count":14},"reposts":{"count":0}}]}
    [свернуть]
    • 1

    Спасибо сказали:

    webm0ney(24.02.2015),
  3. Дипломник Аватар для webm0ney
    • Регистрация: 31.05.2011
    • Сообщений: 232
    • Репутация: 33
    west0293, <1000 - мало, мне как раз от 1к надо или даже от 5 000... Но спасибо за помощь всеже !!
    Ну на питоне то выдает "total_count" )) Я почти доковырял код, но со строками что-то я вообще не догоняю....
    Берутся строки из файла, но как указать брать первую... затем вторую и тд.. я чтот вообще не але((
    Мб даже в коде где то запутался - не знаю...

    PHP код:
    #!/usr/bin/env python 
    # -*- coding: utf-8 -*- 
     
    from __future__ import division 
    import requests 
    import json 
    import os 
    import os
    .path 


     
    if True:
        
    file open('in.txt''r')
        for 
    line in file:
            
    line
        import urllib
        q 
    urllib.quote(q.encode('utf-8'))
        
    url 'https://api.vk.com/method/newsfeed.search?q=%s&count=3&v=5.28' %(q)
        
    resp requests.get(url).json()['response']
        
    total_count resp['total_count']
        
    file open('out.txt''w')
        
    file.write ((q) + (' = ') + str(total_count))
        
    file.close() 
    Запускаешь: берется последняя строка и все - конец ))
    Первый язык программирования дается, но с боооольшим трудом))
    • 0
  4. Гуру Аватар для Ems
    • Регистрация: 24.05.2011
    • Сообщений: 2,032
    • Репутация: 663
    Сейчас не подскажу, но быстро пробежавшись по коду: все импорты должны идти в начале файла(import urllib в самом коде непорядок).
    Почему именно Python 2? Лучше сразу использовать Python 3.
    Облачный хостинг из TOP-3 - от 1 Gb ОЗУ, от 25 GB SSD.
    • 1

    Спасибо сказали:

    webm0ney(25.02.2015),
  5. Новичок
    • Регистрация: 09.06.2013
    • Сообщений: 29
    • Репутация: 10
    • Webmoney BL: ?
    PHP код:
    import requests 
    import json 

    tags 
    open('tags.txt''r')
    result open('result.txt''w')
    api 'https://api.vk.com/method/newsfeed.search?q=%s&count=1&v=5.28'


    for tag in tags:
        
    tag tag.strip().lstrip('#')
        
    url api tag
        r 
    requests.get(url)
        
    content json.loads(r.text)
        
    total_count content['response']['total_count']
        
    tag '%s %d \n' % (tagtotal_count)
        
    result.write(tag)
        
    tags.close()
    result.close() 
    Если ищете # + что-то, то total_count не будет в результате
    Последний раз редактировалось Morgan; 25.02.2015 в 01:14.
    • 1

    Спасибо сказали:

    webm0ney(25.02.2015),
  6. Дипломник Аватар для webm0ney
    • Регистрация: 31.05.2011
    • Сообщений: 232
    • Репутация: 33
    Всем спасибо! Скрипт уже написан

    Цитата Сообщение от Morgan Посмотреть сообщение
    Если ищете # + что-то, то total_count не будет в результате
    ?? выдает он все... уже половину тегов проверил + проверил ручками через веб = результаты сходятся ))
    Код красивый у тебя, не то что мой быдлокод ))
    • 0
  7. Гуру Аватар для west0293
    • Регистрация: 09.06.2011
    • Сообщений: 1,025
    • Репутация: 342
    • Webmoney BL: ?
    webm0ney, у меня вот тоже total_count не отдает... Можешь скинуть пример запроса, которому он отдает total_count?
    P.s. Т.е сделай print url в конце,чтобы глянуть сформированный запрос.
    • 0
  8. Дипломник Аватар для webm0ney
    • Регистрация: 31.05.2011
    • Сообщений: 232
    • Репутация: 33
    west0293,
    PHP код:
    https://api.vk.com/method/newsfeed.search?q=%23liverpool&count=3&v=5.28 
    %23 - как я понимаю и есть #
    • 1

    Спасибо сказали:

    west0293(27.02.2015),

Похожие темы

Темы Раздел Ответов Последний пост
Кто разбирается в Python
Web программирование 0 03.07.2014 20:11
PHP/Python программирование
Создание сайтов 7 19.11.2013 19:51
[Ищу] Проверка количества html на странице
Вопросы от новичков 4 18.10.2013 11:11
Программистов Python/Django - от 50 000 до 150 000 руб.
Другая работа 0 19.09.2013 01:20
Программисты Python/Django
Создание сайтов 0 25.06.2013 00:32

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры