Всем привет. Для некоторых нужд необходимо проверить количество новостей по хештегам ВК, сделал бы и ручками все... но их очень много ((
В голову пришла идея организовать это все через питон, но опыта работы с питоном ~ неделя.
В общем есть список хештегов в 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
q = 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
- 24.02.2015 12:36
- 24.02.2015 21:00
webm0ney, на питоне, к сожалению, не шарю, набросал на php (сам еще учусь):
PHP код:Содержимое "in.txt":<?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);
?>Код:Выходной файл "out.txt":#петя #вася #деньги #вконтакте #газмяс #игры #пирожок
Код:Рядом с .php файлом должен лежать файл simple_html_dom.php.#петя 390 #вася 1000 #деньги 1000 #вконтакте 1000 #газмяс 29 #игры 1000 #пирожок 1000
Скрипт отлично работает, сам только что прогонял. (Не забудьте 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}}]}[свернуть]Спасибо сказали:
webm0ney(24.02.2015), - 24.02.2015 21:16
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:
q = 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()
Первый язык программирования дается, но с боооольшим трудом)) - 24.02.2015 23:49
Сейчас не подскажу, но быстро пробежавшись по коду: все импорты должны идти в начале файла(import urllib в самом коде непорядок).
Почему именно Python 2? Лучше сразу использовать Python 3.Спасибо сказали:
webm0ney(25.02.2015), - 25.02.2015 01:04PHP код:Если ищете # + что-то, то total_count не будет в результате
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' % (tag, total_count)
result.write(tag)
tags.close()
result.close()
Последний раз редактировалось Morgan; 25.02.2015 в 01:14.
Спасибо сказали:
webm0ney(25.02.2015), - 25.02.2015 02:15
- 25.02.2015 11:23
webm0ney, у меня вот тоже total_count не отдает... Можешь скинуть пример запроса, которому он отдает total_count?
P.s. Т.е сделай print url в конце,чтобы глянуть сформированный запрос. - 27.02.2015 00:26
west0293,
PHP код:%23 - как я понимаю и есть #https://api.vk.com/method/newsfeed.search?q=%23liverpool&count=3&v=5.28
Спасибо сказали:
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 |






