所以我有一个爬虫使用这样的东西:
#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 页面?
最佳答案
您可以发送头部请求并检查内容类型。如果是 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"
关于Python 请求:检查 URL 是否不是 HTML 网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392321/