fkubota / Carrier-Owl

arxiv--> DeepL --> Slack/LINE
MIT License
327 stars 356 forks source link

BeautifulSoup(スクレイピング)からarXiv API利用へ変更 #19

Closed wakame1367 closed 3 years ago

wakame1367 commented 3 years ago

arXivにはPublicなarXivAPIが存在するので、そちらを使うほうが正しいアクセスの方法かと思います。

fkubota commented 3 years ago

@wakamezake
ありがとうございます。 web周り全くの初心者で苦労してました。 変更します!

wakame1367 commented 3 years ago

こちらでPR出そうかと思ってissue建てました

fkubota commented 3 years ago

@wakamezake
BeautifulSoupで出力される論文数とことなりますね。
wakamezakeさんの方法: 16本 fkubotaの方法: 3本

でした。何か心当たりはありますでしょうか?

wakame1367 commented 3 years ago

arXivからの取得をsubmitした日付ソート後の上から1000件分を取得してます。この部分が差分になってますね、修正します。

fkubota commented 3 years ago

なるほど。 必然的に重複が生まれてしまいますね。
こちらでも調査してみます。
ありがとうございます。

fkubota commented 3 years ago

@wakamezake
↓のfor文内で

https://github.com/fkubota/Carrier-Owl/blob/f4f76f2b2f22ca89954811e30473a1728ec4c419/src/carrier_owl.py#L43-L47

day = article["published_parsed"].tm_mday
のように日付を取得して日付をチェックするif文いれればできそうですね。

queryでなげる時に指定できればいいんですが、、、

wakame1367 commented 3 years ago

質問なのですがREADMEには前日のarxivと記載されていますが、検索対象の論文っていつまでを想定していますか? (回答想定、最大1週間前から昨日までなど)

fkubota commented 3 years ago

@wakamezake ありがとうございます! 昨日が正しい日本語になりますかね。

具体例で示しますと。

12/31に通知を行う場合、 12/30にpublishされた論文がSearch範囲になります。

wakame1367 commented 3 years ago

元の処理をたどると最近投稿された日付のリストを下のページから取得して 1

今日がリストの0番目であればリストの2番目の日付の論文リンクを参照する それ以外であれば1番目の日付の論文リンクを参照するという処理をしています。 上の画像の場合、今日が12/29であれば12/23-12/24までに投稿された論文リストから検索をかける。

この処理の場合、日付のリスト内に前日(昨日)が入っているかをチェックされていないので期待されている動作ではないのかなと思いました。

fkubota commented 3 years ago

ちょっとすぐにはわからないのですが、年末ということで、26日以降に論文が出ていないので、リストに現れていないという可能性って考えられますか?

少なくとも、意図としては通知の前日になります。

wakame1367 commented 3 years ago

arxiv apiの検索対象を昨日投稿された論文のみに修正したPR出しました

fkubota commented 3 years ago

ありがとうございます! 確認します!

wakame1367 commented 3 years ago

論文が見つからなかった場合でも通知飛ぶようになっていますが修正したほうがいいですか? この部分 https://github.com/fkubota/Carrier-Owl/blob/8f9eb105b0d2756bdd0241bc506ec8aae8ff6feb/src/carrier-owl.py#L107-L110

fkubota commented 3 years ago

いえ、このままで問題ないです。

問題なく動作しているが見つからなかった

ということがわかるので、このほうがいいかと。
ありがとうございます。

fkubota commented 3 years ago

@wakamezake
ありがとうございました。 マージ完了しましたので、クローズにしたいと思います。