忍者ブログ
Yaleで、遊んで学ぶ日々。

Yaleで、遊んで学ぶ日々。

囲碁、ときどきプログラミング、ところにより経済。
[1]  [2]  [3]  [4]  [5]  [6]  [7
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PythonにおけるHTML scrapingにはBeautifulSoupが欠かせないが、その全貌がよくわかってなかった。どうも正規表現を簡潔に記述する機能としか理解していなかったのだが、実際は、HTMLソースをツリー階層に処理して、直感的に解析するツールになっている。特定のタグを検索するくらいだと気にならないが、要素間移動を利用したところ(事実ある種の作業にはこれが不可欠になる)、その一端に触れることができた。

テストコード。まだ完全には理解できていない。


from bs4 import BeautifulSoup

html = """ 
<body>
<a>A tag</a>
whatever outside <br> <br/>
<a>iyay <i> somthing inside </i> </a> 
</body>
""" 


soup = BeautifulSoup(html)


print 'navigation by "find_next()" method'
a = soup.a
for i in range(10):
    if i == 1:
        print type(a)
    print i, ':', a
    a = a.find_next()
    if not a:
        break

print '\n'
print 'navigation by "find_next_sibling()" attribute'
a = soup.a
for i in range(10):
    if i == 1:
        print type(a)
    print i, ':', a
    a = a.find_next_sibling()
    if not a:
        break

print '\n'
print 'navigation by "next_sibling" attribute'
a = soup.a
for i in range(10):
    if i == 1:
        print type(a)
    print i, ':', a
    a = a.next_sibling
    if not a:
        break

print '\n'
print 'navigation by "next_element" attribute'
a = soup.a
for i in range(10):
    if i == 1:
        print type(a)
    print i, ':', a
    a = a.next_element
    if not a:
        break


出力結果:

navigation by "find_next()" method
0 : <a>A tag</a>
<class 'bs4.element.Tag'>
1 : <br/>
2 : <br/>
3 : <a>iyay <i> somthing inside </i> </a>
4 : <i> somthing inside </i>


navigation by "find_next_sibling()" attribute
0 : <a>A tag</a>
<class 'bs4.element.Tag'>
1 : <br/>
2 : <br/>
3 : <a>iyay <i> somthing inside </i> </a>


navigation by "next_sibling" attribute
0 : <a>A tag</a>
<class 'bs4.element.NavigableString'>
1 :
whatever outside
2 : <br/>
3 :
4 : <br/>
5 :

6 : <a>iyay <i> somthing inside </i> </a>
7 :



navigation by "next_element" attribute
0 : <a>A tag</a>
<class 'bs4.element.NavigableString'>
1 : A tag
2 :
whatever outside
3 : <br/>
4 :
5 : <br/>
6 :

7 : <a>iyay <i> somthing inside </i> </a>
8 : iyay
9 : <i> somthing inside </i>

PR
今メインで使っているのはUbuntu12.10。アップグレードのたびにぐんぐんグラフィックが綺麗なっていく一方、動作に難がでてきているようにも思う。 軽量さを求めるなら、LubuntuXubuntulinuxBeanなどのディストリビューションがあるらしい。
(より詳しく→軽量Linuxを比較)。

当面は、OSを入れ替える時間がないのだが、デスクトップ環境を標準設定のUnityから、LXDE(Lubuntuで使用)やXCFE(Xbuntuで使用)に変更するだけでも、動作は回復するらしい。

*手順*

1. デスクトップ環境をインストール。
sudo apt-get install lubuntu-desktop

2. ログアウトして、再度ログインする時にLubuntu-Desktopというセッションを選ぶ。


すると、どこか懐かしい、無機質な感じのデザインになっている。
重苦しいランチャーはない。

第1回電王戦。
プロとの9路盤、トップアマとの13路盤対局はZENの全敗。
いつも自分が苦戦してしまう天頂の囲碁の面影すらない。

最後の砦、小沢一郎氏との19路盤互先局(棋譜のSGFファイルへのリンク
結果はZENの中押し勝ち。
結果は予想通りだったが、それはともかく双方打ち込まない模様の囲い合いで、ZENの接近戦の力が発揮されるチャンスがなかったのが残念だった。囲い合って十分だと判断されるとこうなる。プレイアウトを繰り返すモンテカルロの仕組みだと、10目単位くらいの形勢判断はかなり精確だと思う。
終局直前、最後のお願いみたいな所で死活問題が生じたが、そこでは小沢氏に読み間違いが目立った。



KGS1dになって初対局。コミ無しの黒。左下隅でクリックミスして、コミ分損した気分。


左上隅で、黒6とハネるところを間違えて5に切ったので、白6に下がられて隅を取られる。



白4はB18。取られているが、実はこの白がはっきりとは生きてないんだな・・・。
どうも双方そのことに気づいてなくて・・・。

 

結局この味が実現して、花六で大逆転勝ち。


R であるパッケージをインストールしようとしたら、次のようなエラーが出てしまった(OSはUbuntu)。

ctm.c:29:25: fatal error: gsl/gsl_rng.h: No such file or directory

どうもGNU Scientific Libraryというものが見つからないということらしい。
少し調べたら、 libgsl0-dev というものをインストールすれば良いらしいと分かった。
端末から、

sudo apt-get install libgsl0-dev

としてから再びRに戻ったら、無事インストールすることができた。

参考:Ubuntu Forum
Calender
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Search in This Blog
Latest Comments
[03/30 川内のばば山田]
[03/30 川内のばば山田]
[08/06 Aterarie]
[07/05 Agazoger]
[07/01 Thomaskina]
Oldest Posts
Latest Trackbacks
フリーエリア

Barcode
Access Analysis
Powerd by NINJAブログ / Designed by SUSH
Copyright © Yaleで、遊んで学ぶ日々。 All Rights Reserved.
忍者ブログ [PR]