1

我正在尝试通过解析 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'

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

4

3 回答 3

2

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

你不应该自己运行它select吗?或者选择中的每个元素呢:

for item in selects:
   print item.get_text()
于 2013-04-23T10:50:22.267 回答
1

我经常看到这个错误。

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

select2 = BeautifulSoup(select, "lxml")

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

于 2015-11-16T15:28:08.983 回答
-2

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

于 2018-02-09T00:16:15.307 回答