python 'NoneType' object is not iterable错误怎么解决
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r=requests.get(url,timeout=30) # 返回一个实例,包含了很多的信息
r.raise_for_status() # 响应状态码,200表示服务器已成功处理了请求
r.encoding = r.apparent_encoding# 更改请求网页的编码方式为utf-8
return r.text # 返回所请求网页的内容
except:
return "产生异常"
def fillUnivList(ulist,html):
soup = BeautifulSoup(html, "html.parser") #使用BeatifulSoup解析网页正文文本内容
for tr in soup.find('tbody'): # 遍历tbody结构下的tr节点
if isinstance(tr,bs4.element.Tag):#判断遍历的tr节点是否是标签
tds=tr('td') #读取tr节点下的td标签的内容存入一个列表tds
for i in range(5):
try:
a = str(tds.string) #读取trs中的字符串内容给a
a = a.strip() #删除字符串a前后的空格
tds = a #将a的内容赋给trs
except:
tds = "" #异常处理,如果tds存的不是字符串
return "产生异常"
ulist.appent(tds[0].string,tds[1].string,tds[2].string) #将列表trs中的内容以字符串的形式追加到ulist列表中
def printUnvList(ulist,num):
print("{:^10}\t{:^6}\t{:^10}".format('排名', '学院名称','国家'))
for i in range(num+1):
u=ulist #读取ulist中的字符串内容给u
if i>0:
print("{:^10}\t{:^6}\t{:^10}".format(u[0], u[1], u[2]))#打印列表u的内容
print("Suc"+str(num))
def main():
unifo = []
unifo1 = []
url='https://baike.so.com/doc/5466535-5704751.html'
html=getHTMLText(url) #获取url的内容
fillUnivList(unifo,html) #利用BeautifulSoup库解析html,获得相关数据存入列表unifo中
printUnvList(unifo,30) #打印30行列表unifo中的内容
main() |
免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。
|
|
|
|
|
|
|
|
报错信息说明了,你提供的对象类型为None,是不可以迭代(简单点讲不能循环),加个条件判断过滤一下就 是了 |
|
|
|
|
|
|
|