Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TUT Python スクレイピングハンズオン
Search
panakuma
February 03, 2018
Education
0
440
TUT Python スクレイピングハンズオン
panakuma
February 03, 2018
Tweet
Share
More Decks by panakuma
See All by panakuma
jsnog-lt-1_イベントNOCの裏側
panakuma
0
280
DTCP-IPをVPNで
panakuma
0
3k
TUT Python 初心者入門
panakuma
0
420
Other Decks in Education
See All in Education
滑空スポーツ講習会2025(実技講習)EMFT学科講習資料/JSA EMFT 2025
jsaseminar
0
230
The Next Big Step Toward Nuclear Disarmament
hide2kano
0
220
いわゆる「ふつう」のキャリアを歩んだ人の割合(若者向け)
hysmrk
0
310
SJRC 2526
cbtlibrary
0
200
【dip】「なりたい自分」に近づくための、「自分と向き合う」小さな振り返り
dip_tech
PRO
0
230
多様なメンター、多様な基準
yasulab
PRO
5
19k
子どもが自立した学習者となるデジタルの活用について
naokikato
PRO
0
180
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
660
TypeScript初心者向け完全ガイド
mickey_kubo
1
120
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
20251119 如果是勇者欣美爾的話, 他會怎麼做? 東海資工
pichuang
0
170
ロータリー国際大会について~国際大会に参加しよう~:古賀 真由美 会員(2720 Japan O.K. ロータリーEクラブ・(有)誠邦産業 取締役)
2720japanoke
1
770
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Making the Leap to Tech Lead
cromwellryan
135
9.7k
How GitHub (no longer) Works
holman
316
140k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
YesSQL, Process and Tooling at Scale
rocio
174
15k
From π to Pie charts
rasagy
0
120
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Designing for Performance
lara
610
70k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Six Lessons from altMBA
skipperchong
29
4.1k
Transcript
Python Boot Camp in TUT Python 初心者入門 第2回 スクレイピング
スクレイピングとは • ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。 (Wikipedia 日本語版 ウェブスクレイピング より引用)
スクレイピングに必要なモノ(ライブラリ) •urlilb5 •beautifulsoup4
ライブラリのインストール (1) •pipyというライブラリ管理ツールを使います。 •ubuntu でいうaptitude(apt)と同じような感じのものと思って下さい。
ライブラリのインストール (2) •まず、pip3をaptでインストールします。 •sudo apt install python3-pip •pip3でurlli5とbeautifulsoup4をインストールします。 •sudo pip3
install urllib5 beautifulsoup4
ライブラリの使い方 (1) •プログラム内でライブラリを使うときにはimportをします。 • importの仕方 ライブラリ全体をimport import ライブラリ名 ライブラリの一部をimport from
ライブラリ名 import 関数名など
ライブラリの使い方 (2) •importしたものに別の名前をつけることもできます。 •例えば長い関数名を省略したいときなんかに便利です。 from ライブラリ名 import 関数名 as 別名
スクレイピングの基本 •まずスクレイピングするサイトの構造を観察します。 •自分が取得したい情報が入っているタグなどを見つけます。 •またタグに振ってあるクラスやIDも手がかりになります。
構造の観察 (1) •今回、「妹さえいればいい。」のニュースページをスクレイピングして いきたいと思いますので、まずそのサイトを開き、キーボードの[F12] を押して下さい。 •開発者ツールが開きますので、開発者ツール左上の要素選択ツー ルをクリックして、拾いたい要素(今回はニュースのタイトル)をクリッ クします。
構造の観察 (2) •クリックすると、HTMLソースの対応した部分をブラウザが表示してく れます。
構造の観察 (3) •この要素は h1タグで 「c-thumb-index__title」というクラスである •ということがわかります。 •これを手がかりに、データを抽出していきます。
スクレイピング (1) •まずは以下のサイトのコードを「scraping.py」というファイルに入力し て実行してみたください。 https://goo.gl/mDyxXU
None
スクレイピング (2) • 行っていることの解説 • まず最初の2行 from urllib import request
from bs4 import BeautifulSoup as BS • urllibというライブラリからrequestという機能をインポート • bs4というライブラリからBeautifulSoupという機能をインポートしてBSという別 名を付与
スクレイピング (3) url = "http://imotosae.com/news/" req = request.Request(url) res =
request.urlopen(req) html = res.read() • 変数urlにスクレイピングするサイトのurlを代入 • urlを取得するというオブジェクトをreqに代入 • reqを実行して得られたオブジェクトをresに代入 • htmlにresをStringとして代入
スクレイピング (4) soup = BS(html, "lxml") topics = soup.find_all('h1', 'c-thumb-index__title')
for i in range(len(topics)): print(topics[i].string, "\n") • htmlを「lxml」というHTMLパーサを使って内容を解析して 結果を変数 soup に代入 • soupの中から「c-thumb-index__title」というクラス名を持つ「h1」タ グを抽出して変数 topics にリストとして代入 • topicsの中身を出力