Всем привет!!!
Создал парсер для автоматического (раз в минуту) сбора публикаций с новостных групп.
Столкнулся с такими проблемами:
1. Хочу собирать id публикаций, чтобы не было повторений. Создал переменную, но почему id туда не сохраняются!
2. Для автоматического прохода цикла нашел библиотеку schedule, но после запуска почему-то собирает постоянно новости только с 1 группы.
# Код
from pprint import pprint
import requests
import schedule
import time
_token = "..."
domains = [
# здесь список сообществ
]
last_posts_ids = []
def make_result_items(domain, post):
return {
"URL": f"https://vk.com/{domain}?w=wall{post['from_id']}_{post['id']}",
"text": post["text"],
}
def get_posts():
posts = []
posts_ids = []
for domain in domains:
response = requests.get("https://api.vk.com/method/wall.get",
params={
"access_token": _token,
"v": 5.27,
"domain": domain,
"count": 3}).json()["response"]["items"]
posts_ids = [post["id"] for post in response]
for post in response:
if post["id"] in last_posts_ids:
continue
posts.append(make_result_item(domain, post))
last_posts_ids = posts_ids
if len(posts) == 0:
print("NO NEWS")
return []
return pprint(posts)
schedule.every(1).minutes.do(get_posts, domain="saratov_24")
while True:
schedule.run_pending()
time.sleep(.5)
Создал парсер для автоматического (раз в минуту) сбора публикаций с новостных групп.
Столкнулся с такими проблемами:
1. Хочу собирать id публикаций, чтобы не было повторений. Создал переменную, но почему id туда не сохраняются!
2. Для автоматического прохода цикла нашел библиотеку schedule, но после запуска почему-то собирает постоянно новости только с 1 группы.
# Код
from pprint import pprint
import requests
import schedule
import time
_token = "..."
domains = [
# здесь список сообществ
]
last_posts_ids = []
def make_result_items(domain, post):
return {
"URL": f"https://vk.com/{domain}?w=wall{post['from_id']}_{post['id']}",
"text": post["text"],
}
def get_posts():
posts = []
posts_ids = []
for domain in domains:
response = requests.get("https://api.vk.com/method/wall.get",
params={
"access_token": _token,
"v": 5.27,
"domain": domain,
"count": 3}).json()["response"]["items"]
posts_ids = [post["id"] for post in response]
for post in response:
if post["id"] in last_posts_ids:
continue
posts.append(make_result_item(domain, post))
last_posts_ids = posts_ids
if len(posts) == 0:
print("NO NEWS")
return []
return pprint(posts)
schedule.every(1).minutes.do(get_posts, domain="saratov_24")
while True:
schedule.run_pending()
time.sleep(.5)