Python请求:检查URL是否不是HTML网页

时间:2014-08-19 20:21:22

标签: python python-requests

所以我有一个使用这样的东西的爬虫:

#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 个答案:

答案 0 :(得分:5)

您可以发送头部请求并检查内容类型。如果它的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"