python运行没问题,但是有个报错,哪的问题呢
本帖最后由 xuegaoxiansen 于 2022-10-4 12:25 编辑import requests
from bs4 import BeautifulSoup
import os
url = 'https://www.mmonly.cc/tag/yqmn/'
resp = requests.get(url)
html = (resp.content.decode('gbk'))
soup = BeautifulSoup(html,'html.parser')
titlea = soup.find_all('div',attrs={'class':'item_b'})
for item in titlea:
name = item.find_all('b').text
try:
os.mkdir('./学习/'+name)
except Exception as e:
continue
报错内容
name = item.find_all('b').text 应该是这里没有查到内容 haidibingjing 发表于 2022-10-4 12:22
name = item.find_all('b').text 应该是这里没有查到内容
查到了呀,都成功的创建了文件夹并命名
运行没问题,就是看见这个报错想要知道怎么回事 xuegaoxiansen 发表于 2022-10-4 12:24
查到了呀,都成功的创建了文件夹并命名
运行没问题,就是看见这个报错想要知道怎么回事
我记得这个意思应该是超出索引范围,好久没写了 超出索引,你的内容不是一个列表或者列表为空 报错是因为类名为item_b的div标签,有的有<b>这个子标签有的没有,要在name = item.find_all('b').text这一行前面加一个判断item.find_all('b')是否存在,你程序能正常运行应该是没有<b>的正好在你所需要的标签的后面所以文件依然正常建立了,但其实程序是运行终止了的 你确定你发的代码是“学习.py”这个文件的吗?跟报错对不上啊,PyCharm点右上角运行的文件不一定是正在编辑的文件哦 切换成调试模式就能看到了
你的24行name = item.find_all('b').text 正则没有匹配到内容,是个空列表,所以是列表下标超出界限 如果titlea=['b','']中有一个为空,再匹配一下就是就是[],一个没有任何元素的列表你访问0下标必然是超出索引
建议你打印titlea来看看内容