やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

BeautifulSoupでXMLをスクレイピングする

前回のつづき。

成果物

GitHub

実行結果

前回取得したXMLファイルでやってみた。

$ python3 main.py 
やってみる
https://blog.hatena.ne.jp/ytyaru/ytyaru.hatenablog.com/atom/entry?page=XXXXXXXXXX
Pandocをインストールする
Dockerについて調べてみた
AsciiDoctorをインストールする
FirefoxにAsciiDocのプレビューアをインストールする
plumaにAsciiDocのシンタックスハイライトを設定した
Pythonでタイムゾーンを扱う
AtomにAsciiDoc用プラグインをインストールした
Atomを日本語化した
Mintの標準テキストエディタPlumaの設定をみてみた
LinuxMintにフォントをインストールした

1行目の「やってみる」はブログのタイトル。2行目は次ページのURL。それ以降は記事のタイトル。

ところで、仕様書では7件ずつとあるが10件でてるのだが。

はてなブログAtomPub - Hatena Developer Center

前回

http://ytyaru.hatenablog.com/entry/2017/06/23/000000

今回

XMLファイルをスクレイピングしてデータを取得する。

今回はブログのタイトルと記事のタイトルを取得する。BeautifulSoupを使って。

参考

PythonとBeautiful Soupでスクレイピング - Qiita

BeautifulSoup

インスタンス生成

soup = BeautifulSoup(xml_text, 'lxml')

soupインスタンスを使って対象のXMLから任意のデータを取得する。

要素を取得する(1つ)

element = soup.find('tag_name')
element = soup.tag_name

どちらでも可。

要素を取得する(複数)

elements = soup.find_all('tag_name')

要素のテキストノードを取得する

element = soup.find('p').string

p要素のテキストノード値を返す。

属性の値を取得する

attr = soup.a.get("href")

a要素のhref属性値を返す。

所感

細かいことは調べながら。