Python'get_text()'不起作用

时间:2013-04-23 10:44:43

标签: python html-parsing beautifulsoup

我正在尝试从解析html编译以下代码,但我想出了一个错误:

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 个答案:

答案 0 :(得分:2)

您正在get_text()上运行selects功能,这是一个列表。列表没有这个功能。

你不应该在select本身上运行吗?或者选择中的每个元素如何:

for item in selects:
   print item.get_text()

答案 1 :(得分:1)

我经常看到这个错误。

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

select2 = BeautifulSoup(select, "lxml")

"lxml"可以替换为您正在使用的任何解析器。如果这不起作用,请先尝试将select转换为字符串,然后执行上述变量函数。

答案 2 :(得分:-2)

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