相关疑难解决方法(0)

如何在Python 2中发送HEAD HTTP请求?

我在这里尝试做的是获取给定URL的标题,以便我可以确定MIME类型.我希望能够看到是否http://somedomain/foo/会返回HTML文档或JPEG图像.因此,我需要弄清楚如何发送HEAD请求,以便我可以读取MIME类型而无需下载内容.有谁知道这样做的简单方法?

python content-type http http-headers python-2.7

110
推荐指数
6
解决办法
7万
查看次数

使用来自Python 2的urllib2发出HTTP HEAD请求

我正在尝试使用Python 2对页面执行HEAD请求.

我在尝试

import misc_urllib2
.....
opender = urllib2.build_opener([misc_urllib2.MyHTTPRedirectHandler(), misc_urllib2.HeadRequest()])
Run Code Online (Sandbox Code Playgroud)

misc_urllib2.py

class HeadRequest(urllib2.Request):
    def get_method(self):
        return "HEAD"


class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
    def __init__ (self):
        self.redirects = []

    def http_error_301(self, req, fp, code, msg, headers):  
        result = urllib2.HTTPRedirectHandler.http_error_301(
                self, req, fp, code, msg, headers)
        result.redirect_code = code
        return result

    http_error_302 = http_error_303 = http_error_307 = http_error_301
Run Code Online (Sandbox Code Playgroud)

但我得到了

TypeError: __init__() takes at least 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

如果我这样做

opender = urllib2.build_opener(misc_urllib2.MyHTTPRedirectHandler())
Run Code Online (Sandbox Code Playgroud)

然后它工作正常

python urllib2 head python-2.7

23
推荐指数
1
解决办法
2万
查看次数

Python脚本在没有下载整个页面的情况下查看是否存在网页?

我正在尝试编写一个脚本来测试网页是否存在,如果不下载整个页面就会检查它会很好.

这是我的跳跃点,我已经看到多个示例以相同的方式使用httplib,但是,我检查的每个站点都返回false.

import httplib
from httplib import HTTP
from urlparse import urlparse

def checkUrl(url):
    p = urlparse(url)
    h = HTTP(p[1])
    h.putrequest('HEAD', p[2])
    h.endheaders()
    return h.getreply()[0] == httplib.OK

if __name__=="__main__":
    print checkUrl("http://www.stackoverflow.com") # True
    print checkUrl("http://stackoverflow.com/notarealpage.html") # False
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑

有人建议这个,但他们的帖子被删除.. urllib2是否避免下载整个页面?

import urllib2

try:
    urllib2.urlopen(some_url)
    return True
except urllib2.URLError:
    return False
Run Code Online (Sandbox Code Playgroud)

python httplib urlparse

16
推荐指数
3
解决办法
2万
查看次数

在不下载网页的情况下使用Python检查链接是否已死

对于那些知道的人wget,它有一个选项--spider,允许人们在没有实际下载网页的情况下检查链接是否损坏.我想在Python中做同样的事情.我的问题是我有一个我要检查的100'000个链接列表,每天最多一次,每周至少一次.无论如何,这将产生大量不必要的流量.

据我从urllib2.urlopen()文档中了解,它不下载页面而只下载元信息.它是否正确?或者是否有其他方式以一种很好的方式做到这一点?

最好的,
Troels

python urllib2

6
推荐指数
1
解决办法
6507
查看次数

检查字符串中的有效域名?

我正在使用python,并希望使用一个简单的正则表达式来检查域名的有效性。我至少检查写域名。

url = 'https://stackoverflow'
        keyword = 'foo'
        with self.assertRaises(ValueError):
            check_keyword(url, keyword)
Run Code Online (Sandbox Code Playgroud)

我尝试在url文本字段上进行单元测试,并且在main.py页面中进行了main.py-验证

def check_keyword(网址,关键字):

if re.match("^(((([A-Za-z0-9]+){1,63}\.)|(([A-Za-z0-9]+(\-)+[A-Za-z0-9]+){1,63}\.))+){1,255}$" ,url):
   return ValueError("Invalid")
Run Code Online (Sandbox Code Playgroud)

python regex string dns

5
推荐指数
1
解决办法
6791
查看次数

检查网站是否存在但请求不起作用

因此,几天前我了解了 Web Scraping 的工作原理,而今天我却在胡闹。我想知道如何测试页面是否存在/不存在。所以,我了一下,我发现Python 检查网站是否存在。我正在使用requests module,我从答案中得到了这个代码:

import requests
request = requests.get('http://www.example.com')
if request.status_code == 200:
    print('Web site exists')
else:
    print('Web site does not exist') 
Run Code Online (Sandbox Code Playgroud)

我试了一下,因为example.com存在,它打印出“网站存在”。但是,我尝试了一些我确信不存在的东西,比如 examplewwwwwww.com 并且它给了我这个错误。为什么要这样做,我怎样才能防止它打印出错误(而是说该网站不存在)?

python web-scraping

2
推荐指数
1
解决办法
6483
查看次数