这有效......
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()
发布脚本url.txt只是一个要运行的搜索列表。
答案 0 :(得分:2)
findAll
返回符合条件"class":"green center"
等所有元素的列表。如果您对返回该列表中的单个元素感兴趣,可以通过offset调用它:
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)
我希望这有帮助!
答案 1 :(得分:0)
findAll
将获取元素列表,您需要遍历列表并在每个元素上调用.text
。
for e in soup.findAll('td',{ "class" : "green center" }):
print e.text