1年に年4回もアニメ一覧を調べて60回くらいコピペしていくのもめんどくさいのでpythonでスクレイピングしてほぼ日付順にして放送日、タイトル、URLを抽出してtxtで出力する話です。
放送日のところは正規表現で抽出するようにはしていません。(よくわからなかったから)
google chromeを使って抽出したいページで右クリック→検証をするとどこをbs4で抽出すればいいのかなどが分かります。
bs4で文字を抽出するときは.get_text()を利用すると抽出がうまくいきやすいです。
出力結果
2017年03月xx日~ title1 "http://"
2017年03月xx日~ title2 "http://"
必要なもの
- python3.5以上(どこのバージョンで作ったのか覚えていない)
- BeautifulSoup4
import urllib.request from bs4 import BeautifulSoup web = "" txt = "./matome.txt" def read_items(soup): """アニメ一覧を読み込む""" animes = soup.find_all("div", {"class": "itemBox"}) return animes def item_date(soup): """最速放送日""" date1 = soup.find(class_="firstDate").get_text() date2 = date1.replace("最速放送日 ", "") # ソート用に日付を mm月, dd日 整形 if date2.find("年") - date2.find("月") == -2: date2 = date2.replace("年", "年0", 1) if date2.find("月") - date2.find("日") == -2: date2 = date2.replace("月", "月0", 1) return date2 def item_title(soup): """タイトル""" h2 = soup.find("h2").get_text() return h2 def item_url(soup): """公式URL""" website = soup.find("a", class_="officialSite") if website is None: website = "" else: website = website.get("href") return website def main(): """アニメ一覧から 最速放送日, タイトル, URLをパース""" # URL 読み込み with urllib.request.urlopen(web) as response: html = response.read() bs4soup = BeautifulSoup(html, "html.parser") # アニメ一覧から 最速放送日, タイトル, URLを取り出してくっつける items = read_items(bs4soup) matome = [] for i, item in enumerate(items): title = item_title(item) date = item_date(item) url = item_url(item) item_join = "{}\t{}\t\"{}\"".format(date, title, url) print(item_join) matome.append(item_join) matome = sorted(matome) # txtへ書き出し data = "\n".join(matome) with open(txt, "w", encoding="utf-8") as f: f.write(data) if __name__ == "__main__": main()