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呀!按照这样就好啦!
然后,运行测试:
正常的:
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
破坏掉HTTP之后的:
if __name__ == "__main__":
url = "tp://www.baidu.com"
print(getHTMLText(url))
剩余的,
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)
这个会直接出现百度网页内容!