我写了一个Python脚本来解析当地场地的节目信息,在我的主屏幕上显示更新的日程。
所有打印出来都没问题,但我得到一个字符串索引超出范围错误我认为是最后的结果。
代码如下。我很感激有任何帮助来解释这个特定的错误。
import urllib.request
import bs4 as bs
#READ THE DESIRED URL
sauce = urllib.request.urlopen('http://www.coliseu.pt/agenda/').read()
#PARSE THE HTML
soup = bs.BeautifulSoup(sauce, 'lxml')
#RESULTS WILL HOLD THE INFORMATION PARSED
results = []
#FIND ALL DIVS WITH CLASS BL-BLOCK, GATHER ALL THE TEXT
#AND CHECK FOR THE APROPRIATE RETURNS TO AVOID DUPLICATE FIELDS
for div in soup.find_all('div', class_='bl-block'):
row = [i.text for i in div]
#FOR DEBUGGING
print(row)
if len(row) == 3 and row[2][0].isdigit():
results.append(row)
#SAVE RESULTS TO FILE IF ANY ARE FOUND
if len(results) > 0:
file = open('testfile.txt', 'w')
for line in results:
file.write(line + '\n')
file.close()
我没有使用.txt文件写入方法,因为我无法解决此错误。
在@Vahid解决了上述问题之后,我现在在尝试将其保存到文件时出现编码错误。
当我使用列表时,无法将列表直接写入文件,任何将列表转换为字符串的尝试都会导致同样的错误。
无法找到将数据存入文件的方法。
//修订 找出问题所在。我无法将\ u0327字符编码为UTF-8,无法理解为什么。角色是“ç”。
尝试将其编码为UTF-8和ASCII,但没有成功。我很感激任何帮助。