gpt4 book ai didi

python - 检查页面是否是python中的HTML页面?

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:40 24 4
gpt4 key购买 nike

我正在尝试用 Python 为网络爬虫编写代码。我想检查我要抓取的页面是否是 HTML 页面,而不是 .pdf/.doc/.docx 等页面。我不想检查扩展名为 .html 的 asp、aspx 或类似的页面http://bing.com/travel/不要明确地使用 .html 扩展名,但它们是 html 页面。 python有什么好的方法吗?

最佳答案

这仅从服务器获取 header :

import urllib2
url = 'http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.7-rc6.tar.bz2'
req = urllib2.Request(url)
req.get_method = lambda: 'HEAD'
response = urllib2.urlopen(req)
content_type = response.headers.getheader('Content-Type')
print(content_type)

打印

application/x-bzip2

从中您可以得出结论,这不是 HTML。你可以使用

'html' in content_type

以编程方式测试内容是否为 HTML(或可能是 XHTML)。如果您想更加确定内容是 HTML,您可以下载内容并尝试使用像 lxml 这样的 HTML 解析器来解析它。或 BeautifulSoup .

当心像这样使用requests.get:

import requests
r = requests.get(url)
print(r.headers['content-type'])

这需要很长时间,我的网络监视器显示持续的负载让我相信这是在下载整个文件,而不仅仅是文件头。

另一方面,

import requests
r = requests.head(url)
print(r.headers['content-type'])

仅获取标题。

关于python - 检查页面是否是python中的HTML页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com