pagetakaBlog

写真、PC、ネット、岡山、旅の話題をお届けします

Python:記事見出しと本文抽出(WEBスクレイピング)

<前説>

70歳が近づく爺のPython妄想記(≒暴走記)です。で、前回ちょっとやってみて「成功体験」を得たスクレイピングでした(怪しい)。
pagetaka.hatenablog.jp
しかし、上記結果は、どちらかというと「クローリング」の初期段階で、それも水泳に例えると息継ぎもできずに一回腕を伸ばしただけ、という程度でした。ま、それでも、ネット情報を取り込むことができたとういう体験は重要です。
本日は、その「ひとかき」で得たネット情報から、必要な情報を取り出すという作業をしてみました。

<タグの必要性と、相反する邪魔さ加減>

webページのソースを表示すると、タグがいっぱいあってぐちゃぐちゃしてます。これ見てる人間には邪魔なんですけど、PC的というかWEBスクレイピング的には大切で、サイトの情報、記事の情報(見出し、本文、その他)などがあって有用なのです。このタグを目印に結果的に、見出しはこうで、本文はこうで、と表示させてみようかとアチコチとネット情報を漁ったのでありました。
その結果物が、下のスクリプトです。
Python環境があれば、コピペで動くかと…妄想…。

import requests, bs4
#追加機能二つを導入

urlPoint="https://pagetaka.hatenablog.jp/entry/2020/06/20/111120"
#urlPointに右側のURLを格納

res=requests.get(urlPoint).text
#resにurlPointから取ってきたtextを格納

html_soup = bs4.BeautifulSoup(res, "html.parser")
#Beautifulsoupを使いresにあるhtmlタグなどを含む内容を、html_soupへ格納


outPut=html_soup.find(class_="entry-content")
# html_soupに格納された内の、最初に見つかった class="entry_content" の内容をoutPutへ格納
articleTitle = html_soup.title.text
#html_soupからtitleのタグ抜きした結果を格納→article_soup
print(articleTitle)
print('--------------------')
nonRetText = outPut.text.replace( '\n' , '' )
# outPutに格納された要素(text)のうち、改行を削除に置換した内容を、nonRetTextに格納
print(nonRetText)