Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

PythonでYahoo!ニュースのタイトルと配信日時を取得する

$
0
0

こんにちは

ふと
cd desktop/python
をして
ls
したところ、3分クッキング的にできるスクレイピングがあったので記事にしようと思います。

最初に

「ではこちらが環境設定のできているPCになります〜〜」なんてアシスタントの人が持ってきてくれるわけでもないので環境設定からやりましょう。

ちなみに僕の環境はmacOS Catalina10.15です、不具合だらけで最近よくいろんなアプリが落ちます。

あ、Python3は入ってる前提でお願いします。

今回用意するモジュールは
BeautifulSouprequestsです
どちらも入っていない人はpip3 install 〇〇でインストールしてください。
これでとりあえず材料が揃った感じです。
ここまでで3分経ってそうですね、頑張っていきましょう。

次に

ターミナルを開いてcd destkop(ここは自分が保存したい場所でいいです)をして保存先を決めましょう。オススメはデスクトップにPythonというファイルを作ることです。

そうしたらvim news.pyとしてPythonファイルを作ります。ここは趣味でvimを使っているだけなのでAtomとかVSCodeでOKです。

vimはいいぞ。

今回はYahoo newsからスクレイピングしてくるので
https://news.yahoo.co.jp/をurlとして使います。

スクリーンショット 2019-11-07 15.29.55.png
このアクセスランキングの場所を表示します、楽しくなってきましたね。

スクリーンショット 2019-11-07 15.39.34.png
この写真で選択されているyjnSub_listをスクレイピングします。
Chromeでデベロッパーツールを開いてのぞいてみて下さい。

コード

まずはモジュールをimportしないと話にならないのでチャチャッと入れます

news.py
importrequestsimportbs4

そしたらurlとかsoupとかにいい感じに代入してあげて関数作ってprintすれば完成です。
簡単ですね。

news.py
url='https://news.yahoo.co.jp'html=requests.get(url)soup=bs4.BeautifulSoup(html.text,'html.parser')lank=soup.find('ol',class_='yjnSub_list')urls=list(map(lambdal:l.find('a').get('href'),lank))defget_title(url):html=requests.get(url)soup=bs4.BeautifulSoup(html.text,'html.parser')returnsoup.find('div',class_='hd').texttitles=list(map(get_title,urls))print('title'.join(titles))

最後のprint('title')のtitleは適当に書き換えても大丈夫です。

コードがかけたらターミナルで
python3 news.pyと入力しましょう。
エラーもなくニュースと配信日時が取得できるはずです。

moduleエラーを吐かれてしまったら最初の環境設定に戻ってpip3 uninistall 〇〇とかして再度インストールしてみてください。

お疲れ様でした。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>