我正在尝试从解析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'
我如何传递此错误?谢谢。
答案 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()
,它应该有用。