python为什么会出现IndentationError: unexpected unindent? 20C

这是源码

 # -*- coding: utf-8 -*-
# @Time     : 2018/6/22 22:44
# @Author   : yyc
# @File     : 爬虫2.py
# @Software :  PyCharm
#======================================================
import urllib.request
import requests
import time
import random
from bs4 import BeautifulSoup

i = 0
idList = ['80749562','80765157','80753463','80753023','80752222','80751582','80751341','80748977','80781967']
url = 'https://blog.csdn.net/weixin_42246860/article/details/'
randomTimes = random.randint(1.0,3.0)

def getHTML(url):
    global i
    headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'} 
    i += 1
    try:
        for j in range(len(idList)):
            req = requests.Request(url + idList[j], headers=headers)
            soup = BeautifulSoup(req.text,"html.parser")
            title_list = soup.find_all("h1",class_="title-article").a.text.strip()
            title = title_list[i].a.text.strip()
            urllib.request.urlopen(url + idList[j]).read().decode('utf-8')
            print("第 {} 次访问: ".format(i) + url + idList[j] + "             标题: %s" % title)
            time.sleep(randomTimes)
        print("\n******************** 第 {} 轮访问结束 ********************\n".format(i))
    except:
        print("错误,继续程序")
        pass

def body():
    while True:
        getHTML(url)


body()

这是出错的部分

 def body():
    while True:
        getHTML(url)

可是我明明缩进了啊,下面是Notepad++显示出来的缩进符
图片说明

下面是详细错误

  File "爬虫.py", line 33
    def body():
    ^
IndentationError: unexpected unindent

8个回答

会不会是没保存,或者body函数下面的两行tab和空格混用了,尝试把下面两行的空格重新输入。

保存了,而且N++显示 ----> 的都是缩进,我把所有的缩进都删掉再tab了一次,还是没用,最后把BeautifulSoup的代码都删除,就可以了

刚学了Python,你的问题是后代码的缩进有问题,把下面的代码都改改缩进应该就会好了,我以前也经常出现这样的问题

那是不是BeautifulSoup这个里面的代码缩进不对呢

缩进错误,python格式要求很严的

这个代码明显是从博客上复制粘贴的,在这个情况下很容易出现问题;
注意def body还有while True之间的空格,选中后再巧空格
试试是不是问题就解决了呀

不能用TAB缩进,要用4个空格,你可以设置编辑器TAB为4个空格。

缩进问题,不同编辑器的缩进格式都可能会不一样,从其它地方直接copy的代码都需要对应调整

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问