狠狠撸
Submit Search
Parsing xml with lxml
?
Download as PPTX, PDF
?
0 likes
?
123 views
拓也 岸本
Follow
Parsing XML with lxml of python API
Read less
Read more
1 of 9
Download now
Download to read offline
More Related Content
Parsing xml with lxml
1.
XMLスクレイピング with python
2.
自己紹介 ? 岸本 拓也 ?
2003年~ 株式会社インサイトテクノロジー コンサルティング事業部 ? 最下流エンジニアとして従事(本番稼働前後のRDBMSチューニングが主業務) ? TOPSE9期生 ? 正規化されたDBを見ると心が穏やかになる
3.
岸本的にはデータはRDBMSに入っていると安心 ? ビッグデータの多くは非構造化データ ? そのままDBに入れる? ?
ドキュメントDBとかあるけど。。。 ? やっぱりSQLが使えるといい
4.
XML,HTMLファイルのスクレイピング ? lxml, beatifulsoupなどいろいろ ?
濒虫尘濒の方が速いらしい
5.
Q1: lxmlの気に入っているところは? Ans: ネストしているXML(HTML)をリストに変換でき るXML構造 <TsunamiEvacuationFacility> <Type>民間施設</Type> <Ward>鶴見区</Ward> <Name>キリンビール株式会社横浜工場
総合棟</Name> <Address>生麦1-17-1</Address> <AvailableTime>24時間365日</AvailableTime> </TsunamiEvacuationFacility> <TsunamiEvacuationFacility> <Type>民間施設</Type> <Ward>鶴見区</Ward> <Name>株式会社松尾工務店</Name> <Address>鶴見中央四丁目38番35号</Address> <AvailableTime>平日8:30~17:30</AvailableTime> </TsunamiEvacuationFacility> ..... リスト構造 ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Type', u'民間施設'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Ward', u'鶴見区'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Name', u'キリンビール株 式会社横浜工場 総合棟'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Address', u'生麦1-17-1'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'AvailableTime', u'24時間 365日'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Type', u'民間施設'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Ward', u'鶴見区'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Name', u'株式会社松尾工 務店'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'Address', u'鶴見中央四丁 目38番35号'] ['', 'TsunamiEvacuationFacilityList', 'TsunamiEvacuationFacility[1]', 'AvailableTime', u'平日8:30 ~17:30'] …..
6.
ソース #!/usr/bin/env python from lxml
import etree mxml = etree.parse("http://www.city.yokohama.lg.jp/somu/org/kikikanri/data/tunami.xml") .getroot() #get xml -> mxml mtree = etree.ElementTree(mxml) #get elementtree type -> mtree for m in mxml.iter(): mlist = mtree.getpath(m).split("/") #get path -> mlist mlist.append(m.text) #append value print mlist
7.
Q2: 使っているところは? Ans: XMLファイルの比較に使っています 7 Parser Generator (ANTLR4) XML ファイル Parser 検査対象SQL クエリファ イル SQLクエ リ比較 自己結合 SQLモデル XML ファイル ユーザ 自己結合 SQLパター ン 自己結合 SQLパター ン アンチ SQLパターン XML→ リスト変換
8.
まとめ XML(HTML)のスクレイピングにはlxmlがいいらしい 1.速い 2.XML構造をフルパス出力できる
9.
おまけ 横浜市津波避難施設一覧(全174箇所) http://jp.batchgeo.com/map/b2e872a43ef44e80593a0f7c 187f4a71
Download