Traceback (most recent call last): File "F:\大数据\期末作业\爬虫.py", line 112, in <module> b = parse_detail_page(t) File "F:\大数据\期末作业\爬虫.py", line 61, in parse_detail_page info.append(type[0].split(' /')[0]) IndexError: list index out of range
时间: 2024-03-05 10:49:46 浏览: 128
这个错误提示和之前相同,也是 `type` 列表为空导致了下标越界的错误。可以在使用 `type[0]` 前先检查一下 `type` 列表是否为空,例如:
```python
def parse_detail_page(html):
soup = BeautifulSoup(html, 'lxml')
title = soup.select('h1')[0].get_text()
summary = soup.select('.lemma-summary')[0].get_text().strip()
# 处理 infobox 中的内容
info = []
for tag in soup.select('.basic-info .basicInfo-item'):
key = tag.select('.name')[0].get_text().strip()
value = tag.select('.value')[0].get_text().strip()
info.append((key, value))
# 处理分类信息
type = soup.select('.lemmaWgt-lemmaCatalog .taglist')[0].get_text().split('\n')
if type:
info.append(type[0].split(' /')[0])
else:
info.append('N/A')
return {'title': title, 'summary': summary, 'info': dict(info)}
```
这样,如果 `type` 列表为空,就会将 `'N/A'` 添加到 `info` 列表中,避免了下标越界的错误。
阅读全文