name 'link' is not defined
时间: 2023-09-10 19:13:00 浏览: 207
非常抱歉,这是我的失误。在上一个示例中,我没有考虑到找不到符合条件的文章的情况。如果没有找到符合条件的文章,变量 `link` 就没有被定义,会出现这个错误。以下是更正过的代码:
```python
import requests
from bs4 import BeautifulSoup
url = 'http://itc.hzau.edu.cn/index.htm' # 目标网址
response = requests.get(url) # 发送请求并获取响应
response.encoding = response.apparent_encoding # 设置编码格式(防止中文乱码)
html = response.text # 获取网页源代码
soup = BeautifulSoup(html, 'html.parser') # 解析网页源代码
nav_items = soup.select('.nav-item a') # 获取导航栏标签
for nav_item in nav_items:
if nav_item.string == '信息学院': # 找到"信息学院"标签
link = 'http://itc.hzau.edu.cn' + nav_item['href'] # 获取"信息学院"链接
break
response = requests.get(link) # 发送请求并获取响应
response.encoding = response.apparent_encoding # 设置编码格式(防止中文乱码)
html = response.text # 获取网页源代码
soup = BeautifulSoup(html, 'html.parser') # 解析网页源代码
articles = soup.select('.newslist a') # 获取所有文章标题和链接
found = False # 标记是否找到符合条件的文章
for article in articles:
if '计算机科学系' in article.string: # 找到包含"计算机科学系"的文章
title = article.string # 获取文章标题
link = 'http://itc.hzau.edu.cn' + article['href'] # 获取文章链接
print(title, link) # 输出结果
found = True # 标记已经找到符合条件的文章
if not found:
print('没有找到符合条件的文章')
```
解释一下更正的代码:
1. 在找到符合条件的文章后,我们会将变量 `found` 设为 `True`。
2. 在遍历所有文章后,如果没有找到符合条件的文章,变量 `found` 仍为 `False`,此时输出提示信息。
这样就避免了变量 `link` 未定义的情况。
阅读全文
相关推荐











@GetMapping("admin/dataAnalysis.html") // 确保映射路径包含.html public String dataAnalysis(Model model) throws JsonProcessingException { // 1. 获取数据 Map<String, Integer> userTypeCount = userService.getUserTypeCount(); // 2. 将Map转换为JSON字符串 ObjectMapper mapper = new ObjectMapper(); String userTypeCountJson = mapper.writeValueAsString(userTypeCount); model.addAttribute("userTypeCountJson", userTypeCountJson); // 3. 返回视图名称(不带后缀) return "admin/dataAnalysis"; } Data Analysis <script th:inline="javascript"> document.addEventListener("DOMContentLoaded", function() { try { // 解析后端传递的JSON数据 var userTypeCount = JSON.parse([[${userTypeCountJson}]]); console.log("原始数据:", userTypeCount); // 数据转换 var data = []; for (var key in userTypeCount) { data.push({ name: key.toString(), value: userTypeCount[key] }); } // 初始化图表 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); myChart.setOption({ title: { text: '用户类型占比', left: 'center' }, tooltip: { trigger: 'item' }, series: [{ type: 'pie', radius: '50%', data: data }] }); } catch (error) { console.error("图表初始化失败:", error); } }); </script> 怎么死活显示不出来饼图



