Чтобы удалить запрос, фрагментируйте части из URL
В Python, используя urlparse
:
import urlparse
url = urlparse.urlsplit(URL) # parse url
print urlparse.urlunsplit(url[:3]+('','')) # remove query, fragment parts
Или более легкий подход, но он может быть менее универсальным:
print URL.partition('?')[0]
Согласно rfc 3986 URI может быть проанализирован с помощью регулярного выражения:
/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/
Поэтому, если нет идентификатора фрагмента (последняя часть в приведенном выше регулярном выражении) или присутствует компонент запроса (со второй по последнюю часть), тогда URL.partition('?')[0]
должен работать, в противном случае ответы, которые разделяют URL на «?» потерпит неудачу, например,
http://example.com/path#here-?-ereh
но urlparse
ответить еще работает .
Чтобы проверить, можете ли вы получить доступ к странице через URL
В Python:
import urllib2
try:
resp = urllib2.urlopen(URL)
except IOError, e:
print "error: can't open %s, reason: %s" % (URL, e)
else:
print "success, status code: %s, info:\n%s" % (resp.code, resp.info()),
resp.read()
может использоваться для чтения содержимого страницы.