Dies ist mein erster Qiita-Beitrag. Wenn Sie einen Fehler machen, können Sie einen harten Ton verwenden. Bitte teilen Sie uns dies in den Kommentaren mit.
Verwendungszustand
Ich weiß nicht, wann ich es aus Heroku entfernen soll. In diesem Fall möchte ich, dass Sie es in Ihrer lokalen Umgebung, Raspeye oder Ihrem eigenen Heroku verwenden.
Ich gehe zum Informationssystem. Ich habe jedoch nur C-Sprache gemacht und nie Kreationen gemacht. (Ich fand das Programmieren nicht lustig)
Wir entwickeln auch eine Webanwendung mit Django, aber zuerst haben wir den BOT von LINE als etwas ausgewählt, das einfach erstellt werden kann.
Darüber hinaus sammelte KENTA, ein allgemeiner Lebensmittelingenieur, Informationen.
--Hatena Lesezeichen
Sie sagten, dass Sie die Trendspalte wie lesen.
Ich hatte jedoch keine Lust, meinen Computer zu öffnen und die Nachrichten vom Morgen zu überprüfen. Dann wäre es besser, weiter zu programmieren ...
Ich dachte, es wäre gut, es in meiner kleinen Freizeit oder auf Reisen zu überprüfen und später herauszufinden, was für mich nützlich ist, also habe ich es in der tragbaren Leitung ausgefüllt.
Ich möchte, dass diese Person es benutzt.
ist. Da es sich um einen BOT der Linie handelt, kann es problemlos verwendet werden, ohne dass die Anwendung unnötig installiert werden muss.
Ich werde das zum ersten Mal schreiben.
Zusätzlich zu der oben genannten Entwicklungsumgebung ist eine Registrierung für LINE-Entwickler erforderlich.
Wenn die Registrierung nicht funktioniert, lesen Sie den Artikel unter https://qiita.com/kro/items/67f7510b36945eb9689b.
Ich werde die als Vorlage auf Github verteilte verwenden, die im vorherigen Qiita-Artikel geändert wurde. Es scheint ein Fehler zu sein.
dir_name/main.py
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
import os
app = Flask(__name__)
#Umgebungsvariablen abrufen
YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"]
YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"]
line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_CHANNEL_SECRET)
@app.route("/callback", methods=['POST'])
def callback():
# get X-Line-Signature header value
signature = request.headers['X-Line-Signature']
# get request body as text
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
# handle webhook body
try:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))
if __name__ == "__main__":
# app.run()
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
Ich werde hier Scraping hinzufügen.
Importieren Sie vorher die Bibliothek
import requests
from bs4 import BeautifulSoup
import os,json
Diese Artikel sagen etwas sehr Wichtiges. In Bezug auf die Belastung des Servers ist es gefährlich, wenn der Absender absichtlich eine große Anzahl von Anfragen stellt. Nachdem Sie die Situation beobachtet haben, löschen Sie sie aus Heroku, laden Sie sie für den privaten Gebrauch von Ihrem eigenen Raspberry Pi usw. auf den Server hoch und verwenden Sie sie.
Ich habe es überhaupt nicht monetarisiert und einen Link gepostet, daher sollte es keine Urheberrechtsprobleme geben. Es bedeutet, dass Sie zitieren.
Zuerst über Hatena Bookmark kratzen. Ich konnte ziemlich einfach damit umgehen.
def create_h():
h_matome = []
title_list = []
url_list = []
load_url = "https://b.hatena.ne.jp/hotentry/it"
html = requests.get(load_url)
soup = BeautifulSoup(html.content, "html.parser")
topic = soup.find_all("a", class_="js-keyboard-openable")
for element in topic[:30]:
if not element:
continue
title_list.append(element.get("title"))
url_list.append(element.get("href"))
for (i, j) in zip(title_list, url_list):
h_matome.append("[title]" + i)
h_matome.append("[URL]" + j + "\n")
h_matome_lenear = "--[Hatena Lesezeichen]--" + "\n" + "\n".join(h_matome)
return h_matome_lenear
https://qiita.com/Daara_y/items/c4b01107bc6191b9fbff Ich habe die Form angepasst, während ich mich auf bezog. Es kann nicht hilfreich sein, weil es hart gedrückt wird.
def create_q():
load_url = "https://qiita.com/"
html = requests.get(load_url)
soup = BeautifulSoup(html.content, "html.parser")
li = []
for items in soup.find_all():
if "data-hyperapp-props" in items.attrs:
li.append(items["data-hyperapp-props"])
"""
Hier finden Sie die Funktionen unten.
pprint(li[1])
('{"trend":{"edges":[{"followingLikers":[],"isLikedByViewer":false,"isNewArrival":false,"hasCodeBlock":false,"node":{"createdAt":"2020-09-02T00:39:45Z","likesCount":511,"title":"JavaScript-Lern-Roadmap","uuid":"ae2dbbd34f8557d5af19","author":{"profileImageUrl":"https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335670/profile-images/1598003375","urlName":"yukiji"}}},{"followingLikers":[],"isLikedByViewer":false,"isNewArrival":false,"hasCodeBlock":false,"node":{"createdAt":"2020-09-01T17:29:32Z","likesCount":249,"title":"Masa
"""
datas = json.loads(li[1])
result = []
#Ich möchte nur den Schlüsselteil namens Knoten, also bekomme ich so viel
for edges in datas['trend']['edges']:
result.append(edges['node'])
q_matome = []
for v in result[:20]:
q_matome.append('[title]:' + v['title'] )
q_matome.append('[URL]:' + load_url + v['author']['urlName'] + "/items/" + v['uuid'] + '\n')
q_matome_lenear = "--【Qiita】--" + "\n\n" + "\n".join(q_matome)
return q_matome_lenear
Lassen Sie es auch reagieren, wenn Sie das Wort XX als Zeilennachricht erhalten.
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
res1 = create_h()
res2 = create_q()
if event.type == "message":
if event.message.text == "Hatena":
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=res1))
elif event.message.text == "Kita":
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=res2))
else:
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="Bitte geben Sie "Hatena" oder "Kita" ein, um die Informationen zu erhalten."))
Für git werde ich eine Referenzseite veröffentlichen. https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000
Als nächstes mit Git Bash,
Ich habe es so eingesetzt.
Recommended Posts