2010-11-26 13 views
0
text=u’<a href="#5" accesskey="5"></a><a href="#1" accesskey="1"><font color="#667755">\ue689</font></a><a href="#2" accesskey="2"><font color="#667755">\ue6ec</font></a><a href="#3" accesskey="3"><font color="#667755">\ue6f6</font></a>‘ 

私はPythonの新しい手です。 私は\ ue6ec、\ ue6f6、\ ue6ec、これらの文字列を使用してreモジュールを取得する方法を取得します。 ありがとうございます!pythonこれらの文字列を取得する方法

+0

うわー、この断片は意図的に難読化されているように見えます。これは実際には何から来ていますか? – SingleNegationElimination

答えて

2

RegexpはHTMLで作業するには適していません。 Beautiful Soupを使用してください。

+0

ありがとう:)私は修正しました。 – demas

2
>>> from BeautifulSoup import BeautifulSoup 
>>> text=u'<a href="#5" accesskey="5"></a><a href="#1" accesskey="1"><font color="#667755">\ue689</font></a><a href="#2" accesskey="2"><font color="#667755">\ue6ec</font></a><a href="#3" accesskey="3"><font color="#667755">\ue6f6</font></a>' 
>>> t = BeautifulSoup(text) 
>>> t.findAll(text=True) 
[u'\ue689', u'\ue6ec', u'\ue6f6'] 
+0

参考のために、 'u '\ ue689 \ ue6ec \ ue6f6''が生成されます。 –

+0

最新のBeautifulSoup-3.0.0.pyにはgetText()メソッドがありません。使用方法はありません。ありがとうございます。 – user521023

+1

現在、修正されていません(実際には分割しなくて済みますので、単一の文字列にしたい場合は '' '.join(t.findAll(text = True) ' – Kimvais

0

ページが常にその形式になっていることがわかっている場合は、BeautifulSoupパーサーを使用して、HTMLで必要なものを探します。

ただし、不正な形式のHTMLによってBeautifulSoupが壊れることがあります。私はlibxml2のpythonバインディングであるlxmlを使うことをお勧めします。不正なHTMLを解析し、通常は修正します。

関連する問題