ニュースをpythonで抽出してCSV化

f:id:tamurasann:20190812174234j:plain

ニュースをpythonで抽出してCSV化してみます。

 コード全容

コードの全容は以下となります。

①yahooニュースの国内カテゴリのHTMLを取得

②BeautifulSoupでHTMLを解析、タイトルとそのリンクを抽出

③CSV化


import requests
from bs4 import BeautifulSoup
import csv

csv_list = []
url = 'https://news.yahoo.co.jp/categories/domestic'

response = requests.get(url)

bs = BeautifulSoup(response.text,'html.parser')

ul_tag = bs.find_all(class_="topicsList_main")

news = '---------国内-------------------------------------------------------'
csv_list.append([news])
for li_tag in ul_tag[0]:
    title = li_tag.a.getText()
    url = li_tag.a.get("href")
    csv_list.append([title,url])
    print(title,url)

f = open("output.csv", "w",newline="",encoding='utf-8_sig')
writecsv = csv.writer(f, lineterminator='\n')
writecsv.writerows(csv_list)
f.close()

f:id:tamurasann:20190812213950p:plain

 

requests、BeautifulSoup、csvライブラリをインポート

requestsライブラリ

HTTP通信を行うためのライブラリ。画像や文字を収集したいURLを指定して使う。

requests.get(url)

2.python-requests.org

 

BeautifulSoupライブラリ

HTMLを解析するためのライブラリ。HTML内の属性等を特定し、抽出する。

bs = BeautifulSoup(HTML.text,'html.parser')

bs.find_all(class_="topicsList_main")

※classがtopicsList_mainの構文をすべて抽出

※parseとは英単語で分析するという意味。html.parserはHTMLを分析する。
kondou.com

 

csvライブラリ

csvを読み書きするために必要なライブラリ

下記の部分で使用しております。

f = open("output.csv", "w",newline="",encoding='utf-8_sig')

writecsv = csv.writer(f, lineterminator='\n')

writecsv.writerows(csv_list) f.close()

docs.python.org

 

日付をつけるなら、datetimeでつけることもできます。

import datetime

today = datetime.date.today()
print(today)

# 2019-08-12

 

終わりに

よかったら、下記の記事もご覧ください

 

www.netachoo.work

www.netachoo.work