0

BeautifulSoupを使用した後、lxmlを学習しようとしています。しかし、私は一般的に強力なプログラマーではありません。

私はいくつかのソースhtmlに次のコードを持っています:

<p style="font-family:times;text-align:justify"><font size="2"><b><i> The reasons to eat pickles include:  </i></b></font></p>

テキストが太字になっているので、そのテキストをプルしたいと思います。その特定の線が太字になっていることを区別できないようです。

今晩この作業を開始したとき、次のようなスタイル属性で太字の単語が含まれているドキュメントで作業していました。

<p style="font-style:italic;font-weight:bold;margin:0pt 0pt 6.0pt;text-indent:0pt;"><b><i><font size="2" face="Times New Roman" style="font-size:10.0pt;">The reason I like tomatoes include:</font></i></b></p>

私が作業しているドキュメントは、行を読み、行を結合してからhtml.fromstring関数を使用したフラグメントであると言えます。

txtFile=open(r'c:\myfile.htm','r').readlines()
strHTM=''.join(txtFile)
newHTM=html.fromstring(strHTM)

したがって、上記のhtmコードの最初の行はnewHTM[19]です。

うーん、これは私を近づけているようです

newHTM.cssselect('b')

私はまだ完全には理解していませんが、ここに解決策があります:

for each in newHTM:
    if each.cssselect('b')
        each.text_content()
4

1 に答える 1

0

CSSAPIを使用することは実際には正しいアプローチではありません。すべてのb要素を検索する場合は、次のようにします。

strHTM=open(r'c:\myfile.htm','r').read() # no need to split it into lines first
newHTM=html.fromString(strHTM)
bELements = newHTM.findall('b')
for b in bElements:
    print b.text_content()
于 2009-09-29T05:59:08.830 に答える