Python-requests:检查URL是否不是HTML网页
我有一个爬虫程序,它大概是这样工作的:
#if ".mp3" in baseUrl[0] or ".pdf" in baseUrl[0]:
if baseUrl[0][-4] == "." and ".htm" not in baseUrl[0]:
raise Exception
html = requests.get(baseUrl[0], timeout=3).text
这个程序运行得还不错。不过,如果爬虫遇到像.mp4或.m4a这样的文件,而不是HTML页面,程序就会卡住。在Linux系统中,当我试着运行这个程序时,它只会打印出:
Killed
有没有更有效的方法来处理这些非HTML页面呢?
1 个回答
7
你可以发送一个头请求,然后检查内容类型。如果内容类型是text/html,那就可以继续进行下一步。
r = requests.head(url)
if "text/html" in r.headers["content-type"]:
html = requests.get(url).text
else:
print "non html page"
如果你只想发送一次请求的话,
r = requests.get(url)
if "text/html" in r.headers["content-type"]:
html = r.text
else:
print "non html page"