質問編集履歴
2
ko-donohenshuu
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,69 +23,6 @@
|
|
23
23
|
news = {}
|
24
24
|
|
25
25
|
async def main():
|
26
|
-
|
27
|
-
async with aiohttp.ClientSession() as session:
|
28
|
-
urls = {
|
29
|
-
'https://news.yahoo.co.jp/ranking/access/news': news,
|
30
|
-
}
|
31
|
-
promises = [fetch(session, url, dic) for url, dic in urls.items()]
|
32
|
-
await asyncio.gather(*promises)
|
33
|
-
|
34
|
-
|
35
|
-
async def fetch(session, url, dic):
|
36
|
-
|
37
|
-
async with async_timeout.timeout(100):
|
38
|
-
async with session.get(url) as response:
|
39
|
-
html = await response.text()
|
40
|
-
soup = BeautifulSoup(html, "html.parser")
|
41
|
-
|
42
|
-
# もし辞書が空の時(再起動等で辞書が空のとき)
|
43
|
-
if any(dic) == False:
|
44
|
-
|
45
|
-
promises = [first_items(item, dic) for item in soup.find_all(class_="newsFeed_item newsFeed_item-normal newsFeed_item-ranking")]
|
46
|
-
await asyncio.gather(*promises)
|
47
|
-
|
48
|
-
print("辞書に全アイテム登録完了")
|
49
|
-
return
|
50
|
-
|
51
|
-
promises = [get_items(item, dic) for item in soup.find_all(class_="newsFeed_item newsFeed_item-normal newsFeed_item-ranking")]
|
52
|
-
await asyncio.gather(*promises)
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
await asyncio.sleep(5)
|
57
|
-
|
58
|
-
return
|
59
|
-
|
60
|
-
async def first_items(item, dic):
|
61
|
-
title = item.select_one('div.newsFeed_item_title').text
|
62
|
-
url = item.select_one('a.newsFeed_item_link').get('href')
|
63
|
-
newstime = item.select_one('time.newsFeed_item_date').text
|
64
|
-
|
65
|
-
dic[title] = {'url': url, 'time': newstime}
|
66
|
-
|
67
|
-
|
68
|
-
async def get_items(item, dic):
|
69
|
-
channel_sent = bot.get_channel(1012237139729199136)
|
70
|
-
title = item.select_one('div.newsFeed_item_title').text
|
71
|
-
url = item.select_one('a.newsFeed_item_link').get('href')
|
72
|
-
newstime = item.select_one('time.newsFeed_item_date').text
|
73
|
-
|
74
|
-
|
75
|
-
# もし辞書に新しいタイトルが登録されていなかったら
|
76
|
-
if dic.get(title, None) is None:
|
77
|
-
dic[title] = {'url': url, 'time': newstime}
|
78
|
-
await channel_sent.send(title + "\n" + url + "\n" + newstime)
|
79
|
-
|
80
|
-
|
81
|
-
@tasks.loop(minutes=1)
|
82
|
-
async def send_message_every():
|
83
|
-
await main()
|
84
|
-
gc.collect()
|
85
|
-
|
86
|
-
@bot.event
|
87
|
-
async def on_ready():
|
88
|
-
send_message_every.start() # ループ処理開始
|
89
26
|
```
|
90
27
|
|
91
28
|
### 試したこと
|
1
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
d
|
1
|
+
discord.py pythonメモリ使用量と開放について
|
test
CHANGED
File without changes
|