0
点赞
收藏
分享

微信扫一扫

python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释


python报错IndentationError: expected an indented block。
解决办法很简单,是脚本缩进的问题,检查脚本缩进是否有空格和tab混用的情况或者是缩进明显不对的情况。

通用代码框架:

import requests
def getHTMLText(url):
try:#n个空格缩进(n!=0)
r = requests.get(url, timeout = 30)#2n个空格缩进(n!=0)
r.raise_for_status()#2n个空格缩进(n!=0)
r.encoding = r.apparent_encoding#2n个空格缩进(n!=0)
return r.text#2n个空格缩进(n!=0)
except:#n个空格缩进(n!=0)
return "异常"#2n个空格缩进(n!=0)

就是空格缩进要满足n与2n的关系!

在编译时会出现这样的错IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
比如:

if xxxxxx:
(空格)xxxxx
或者
def xxxxxx:
(空格)xxxxx
还有
for xxxxxx:
(空格)xxxxx

下面这个就很OK呀!按照这样就好啦!

python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释_的报错问题

然后,运行测试:

正常的:

if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))

破坏掉HTTP之后的:

if __name__ == "__main__":
url = "tp://www.baidu.com"
print(getHTMLText(url))

python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释_缩进_02

剩余的,

r.raise_for_status() #如果不是200,产生异常requests.HTTPError 专门与异常打交道。

import requests
r = requests.get("http://www.baidu.com")
print(r.status_code)
print(r.headers)
print(r.text)
print(r.encoding) #从header里猜测编码
print(r.apparent_encoding) #从内容中分析出响应内容编码方式(备选编码方式)(解析中文)
r.encoding = 'utf-8'
print(r.text)
print(r.content)

这个会直接出现百度网页内容!


举报

相关推荐

0 条评论