1

これは動作します...

    print soup.findAll('td',{ "class" : "green center" })

しかし、テキストだけが必要で、これは機能しません...

    print soup.findAll('td',{ "class" : "green center" }).text

これが私がそれをどのように使用しているかです。

#!python27
import fileinput
import sys
import BeautifulSoup
from BeautifulSoup import BeautifulSoup
import re, urllib
filename = "url.txt"
LineNumber=0
f=open(filename)
lines=f.readlines()
f.close()
for line in lines:
        filehandle = urllib.urlopen("http://kat.ph/usearch/"+lines[LineNumber]+"/")
        line = filehandle.read()
        soup = BeautifulSoup(line)
        print soup.findAll('td',{ "class" : "green center" }).text
        print soup.findAll('td',{ "class" : "red lasttd center" }).text
        print LineNumber
        LineNumber=LineNumber+1

        filehandle.close()

Post script url.txt は、実行する検索の単なるリストです。

4

2 に答える 2

2

findAll条件などを満たすすべての要素のリストを返します"class":"green center"。そのリストの単一の要素を返すことに興味がある場合は、オフセットで呼び出すことができます。

print soup.findAll('td',{'class':'green center'})[0].text
print soup.findAll('td',{'class':'green center'})[1].text

または、リストを反復処理することもできます。

for td in soup.findAll('td',{'class':'green center'}):
    print td.text

さらに、リスト内のすべてのテキストを結合したい場合は、各要素をリストに追加して結合できます。

td_list = []
for td in soup.findAll('td',{'class':'green center'}):
    td_list.append(td.text)
print ' '.join(str(x) for x in td_list)

これが役に立ったことを願っています!

于 2012-11-19T14:50:26.683 に答える
0

findAll要素のリストを取得します。リストをループして.text各要素を呼び出す必要があります。

for e in soup.findAll('td',{ "class" : "green center" }):
    print e.text
于 2012-11-19T08:47:49.140 に答える