Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import datetime
from itertools import groupby
from urllib.request import urlopen
from json import loads

#Данные для Александра Градского
url1 = 'https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&rvlimit=500&titles=%D0%93%D1%80%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B9,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%91%D0%BE%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B8%D1%87'
id1 = '183903'

#Для Жан-Поля Бельмондо
url2 = 'https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&rvlimit=500&titles=%D0%91%D0%B5%D0%BB%D1%8C%D0%BC%D0%BE%D0%BD%D0%B4%D0%BE,_%D0%96%D0%B0%D0%BD-%D0%9F%D0%BE%D0%BB%D1%8C'
id2 = '192203'

def return_data(url, id):
data = loads(urlopen(url).read().decode('utf8'))
return data['query']['pages'][id]['revisions']

def convert_date(r):
return datetime.datetime.strptime(r['timestamp'], '%Y-%m-%dT%H:%M:%SZ').date()

def get_result(url, id):
for key, group_items in groupby(return_data(url, id), key=convert_date):
print(key, sum(1 for i in group_items))

#get_result(url1, id1)
get_result(url2, id2)
38 changes: 38 additions & 0 deletions getNewsJSON.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import xml.etree.ElementTree as ET
from urllib.request import urlopen
import json

data = urlopen('https://lenta.ru/rss').read().decode('utf8')
root = ET.fromstring(data)
channel = root[0]


def getAllNews():
allNews = []
for i in channel.findall('item'):
allNews.append({'pubDate': i.find('pubDate').text, 'title': i.find('title').text})
return allNews

def getFinalFile():
final_file = json.dumps(getAllNews(), ensure_ascii=False).encode('utf8')

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь можно было использовать метод dupm из модуля json

with open('news.json', 'wb') as file:
file.write(final_file)


getFinalFile()

def getNewsForTaskTwo():
allNewsTwo = []
for item in channel.findall('item'):
fields = {}
for field in item:
fields[field.tag] = field.text
allNewsTwo.append(fields)
return allNewsTwo

def getFinalFile2():
final_file = json.dumps(getNewsForTaskTwo(), ensure_ascii=False).encode('utf8')
with open('news2.json', 'wb') as file:
file.write(final_file)

getFinalFile2()
Loading