データサイエンス入門 第6回 webスクレイピング その2
データサイエンス入門
AIプログラミングで学ぶデータサイエンス
第6回 webスクレイピング その2 ~webページから条件を決めてスクレイピングする~
練習1のスクライピングは成功したでしょうか。
webページはhtmlを基本としています。さらに、華やかで見やすいページを構成するためにcssなどを組み合わせています。本連載ではhtmlページから必要な内容だけを抜き出す技術であるwebスクレイピングをPythonプログラムで実現する練習をしています。
webスクライピングPythonプログラミングは取り組むハードルが高いといいます。これは、対象となるwebページがサイトごとに違うために、構造をしっかり理解する必要がある点だと思います。
そこで今回はやや構造が複雑になったhtmlリストから特定の語句を含む部分を取り出すスクレイピングに挑戦します。
〇紹介動画は下記URLよりご視聴ください。
〇スライド形式pdf解説書です。
https://drive.google.com/file/d/1pQ-mPOgcbK51Xv5COMv9UXn8v-r9JdRs/view?usp=drive_link
〇演習用webページ
ren1_html.html(第5回目用)
https://drive.google.com/file/d/1gOf56S2u9_e5Msn55pF4PveI10cfF_p9/view?usp=drive_link
ren2_html.html(第6回目用)
https://drive.google.com/file/d/1Z84EAeOPikzAdn1W348RIb3DqUW1XYw6/view?usp=drive_link
〇サンプルプログラム
実行にはren2_html.htmlが必要です。
!pip install requests
#import requests
from bs4 import BeautifulSoup
#import re
#import numpy as np
from google.colab import drive
drive.mount('/content/drive')
# トップページを取得する
URL = "/content/drive/MyDrive/data_science/3_ren2_html.html"
# BeautifulSoupにページ内容を読み込ませる
bsoup = BeautifulSoup(open(URL), "html.parser")
print("bsoup:",bsoup.prettify())
#sub2の内容を取得する
news_list= bsoup.find_all(class_="sub2")
#news_list= news_list.find_all(class_="p")
print("news_list:",news_list)
print(" ")
# list取得状況を確認する
print("news_list[0]:",news_list[0])
print(" ")
#list Text取得状況の確認
print("news_list[0].txt:",news_list[0].text)
print(" ")
#行分割
news_list[0]=news_list[0].text.splitlines()#行分割
print("news1_list[0].text.splitlines:",news_list[0])
print(" ")
#空データの処理
naiyou=[]
for work1 in news_list[0]:
#print("work1:",work1) #リスト内データ表示
work1=work1.strip() #空白削除
if work1!="": #空リストでなければ
naiyou.append(work1) #chushutuにデータ追加
print("naiyou:",naiyou)
print(" ")
#3つを取り出す
news=""
for i in range(1,3+1):
news=news+" 〇"+naiyou[i]
print("入門講座:",news)
GoogleColaboratoryにアップロードすればすぐに動作を確認できます。実行結果のサンプル付きです。
https://drive.google.com/file/d/11kN74kCJRZl6f1wBt5YY7L_TMDLSFe9T/view?usp=drive_link
〇補足
公開している動画と解説用pdfは電波新聞社刊行電子工作マガジンに連載された同題名の内容をGoogle NotebookLMにてまとめています
投稿者の人気記事

-
taketea2018
さんが
前の土曜日の19:44
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する