Challenge programming

Python

リンク一覧を検索してファイルに書き出す

今回、テスト用として自前で下記のような簡単なWEBページサンプルを用意してみました。

Python_sample1.html HTML <!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Python すべてのタグを探して表示する</title>
</head>
<body>
<div id="chapter1">
<h2>ステップ1 プログラミング</h2>
<ol>
<li>HTML</li>
<li>CSS</li>
<li>Javascript</li>
</ol>
</div>
<div id="chapter2">
<h2>ステップ2 プログラミング</h2>
<ol>
<li>Vue.js</li>
<li>Jquery</li>
<li>Python</li>
</ol>
</div>
<a href="http://www.roadtoupload.com">チャレンジ プログラミング</a><br>
<a href="../Python一年生/Python1年生_17.html">画像ファイルから数字を予測するプログラムを作る</a>
<br>
<img src="IMG_20201024_160706.jpg" width="200px" height="200px">
<img src="IMG_20201108_133625.jpg" width="200px" height="200px">
<img src="IMG_20201031_114146.jpg" width="200px" height="200px">
</body>
</html>

完成はこんな感じです。


このHTMLをスクレイピングしてみましょう。

import requests
from bs4 import BeautifulSoup
load_url = "https://www.roadtoupload.com/学びファイル/python2年生/Python_sample1.html"
html = requests.get(load_url)
soup = BeautifulSoup(html.content, "html.parser")
for element in soup.find_all("a"):
    print(element.text)
    url = element.get("href")
    print(url)

解説

import requests事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。
from bs4 import BeautifulSoup事前にコマンドプロンプトでインストールしたHTMLを解析する外部ライブラリ「BeautifulSoup」、これが入っているbs4というパッケージからBeautifulSoupをimport
load_url = "https://www.roadtoupload.com/学びファイル/python2年生/Python_sample1.html"変数load_urlに解析するWEBページアドレスを代入
html = requests.get(load_url)変数htmlにネット上のHTMLファイルを読み込む命令のrequests.get(load_url)を代入します。
soup = BeautifulSoup(html.content, "html.parser")変数soupにBeautifulSoupを使ったHTML解析の命令を代入します。
for element in soup.find_all("a"):リストから1つずつ取り出すためfor文を使用し、すべてのaタグを探しリストで返すfind_all("a")とします。
print(element.text)取得した文字列データを表示します。
url = element.get("href")href属性を取得し、それを変数urlとします。
print(url)取得したデータを表示します。

実行結果

2つのリンクがうまく取り出せました。ただ、取り出せたの1つはwww.~の「絶対URL」ともう一つは「相対URL」です。絶対URLはそのまま使えますが、相対URLはそのままでは使えません。次は相対URLを絶対URLに変換する方法を学びましょう。こちらです。


*尚、ここではバージョン「Python 3.10.1」を使用しています。

この本を参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。



もっと深く学びたい人にはこちらもどうぞ。| For those who want to learn more deeply, this is also recommended.

キャリアアップに必要なスキルを取得しよう。| Get the skills you need to advance your career.

Pythonエンジニア育成推進協会公式認定スクール | Officially certified school of Python Engineer Development Promotion Association.

ぺージの先頭に戻る(Return to top of page)


©2020年9月 Challenge programming

プライバシーポリシー