2013-04-23 229 views
1

我想从解析HTML编译下面的代码,但我想出了一个错误:Python的get_text()'不工作

import string, urllib2, urlparse, csv, sys 
from urllib import quote 
from urlparse import urljoin 
from bs4 import BeautifulSoup 
from ast import literal_eval 

changable_url = 'http://www.asusparts.eu/partfinder/Asus/All%20In%20One/E%20Series' 
page = urllib2.urlopen(changable_url) 
base_url = 'http://www.asusparts.eu' 
soup = BeautifulSoup(page) 

selects = [] 
redirects = [] 
model_info = [] 

#Opening csv writer 
c = csv.writer(open(r"asus_stock.csv", "wb")) 
#Object reader 
cr = csv.reader(open(r"asus_stock.csv", "rb")) 

print "FETCHING OPTIONS" 
select = soup.find(id='myselectListModel') 
selects.append(select) 
print selects.get_text() 

的错误是:

print selects.get_text() 
AttributeError: 'list' object has no attribute 'get_text' 

怎么了我能够通过这个错误?谢谢。

+3

不要使用不存在的方法吗? – 2013-04-23 10:46:45

+0

它不存在吗? – ash 2013-04-23 10:50:21

回答

2

您正在运行selects上的get_text()函数,它是一个列表。列表没有那个功能。

你不应该在select本身上运行它吗?或者每个元素选择什么:

for item in selects: 
    print item.get_text() 
1

我看到这个错误很多。

这与你正在申请get.text()的变量有关; get_text()是与美丽的汤一起使用的功能。所以,你必须重新选择汤:

select2 = BeautifulSoup(select, "lxml") 

"lxml"可以通过你使用任何解析器来代替。如果这不起作用,请将select转换为一个字符串,然后执行上面的可变函数。

-2

您需要在列表中获取元素。 尝试selects[0].get_text()它应该工作。