标签: urlparse

你如何从PHP中的URL中删除域名?

我正在寻找一种方法(或函数)去掉任何提供给函数的URL的domain.ext部分.域扩展可以是任何东西(.com,.co.uk,.nl,.whatever),并且输入它的URL可以是从http://www.domain.com到www.domain.com/path的任何内容./script.php?=whatever

这是最好的方法吗?

php urlparse

46
推荐指数
4
解决办法
5万
查看次数

Python urlparse - 提取没有子域名的域名

需要一种方法来使用Python urlparse从URL中提取没有子域的域名.

例如,我想"google.com"从一个完整的URL中提取出来"http://www.google.com".

我似乎最接近的urlparsenetloc属性,但它包括子域,在本例中它将是www.google.com.

我知道可以编写一些自定义字符串操作来将www.google.com转换为google.com,但我希望在此任务中避免使用字符串转换或正则表达式.(原因是我对url形成规则不够熟悉,以确信我可以考虑编写自定义解析函数所需的每个边缘情况.)

或者,如果urlparse不能做我需要的,有没有人知道任何其他Python url解析库?

python url parsing urlparse

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

什么是URL参数?(urlparse结果中#3位置的元素)

我已经看了一下urlparse.urlparse方法文档,我对这个parameters部分有点困惑(不要与更熟悉的query部分混淆,那就是在问号之后和片段部分之前).

关于URL结构的维基百科条目没有说明这一点,所以可以请任何人详细说明这一点并可能举一些例子吗?

python url url-parameters urlparse

39
推荐指数
2
解决办法
6218
查看次数

如何在python-3中导入urlparse?

我想用urlparse.但是python3.4.1没有找到模块.

我这样做import urlparse,但它给了我这个错误

importError: no 'module' named ulrparse
Run Code Online (Sandbox Code Playgroud)

python import importerror urlparse python-3.x

30
推荐指数
2
解决办法
5万
查看次数

从python中的URL获取查询字符串的最佳方法?

我需要从这个URL获取查询字符串/sf/?next=1&value=3,我不想使用request.META.我已经发现有两种方法可以获取查询字符串:

  1. 使用urlparse urlparse.urlparse(url).query

  2. 使用url编码 使用urlencode并将request.GET params字典传递给它以获取字符串表示.

那么哪种方式更好?我的同事们更喜欢urlencode,但没有提供令人满意的解释.他们声称urlparse在内部调用urlencode,这是我不确定的,因为urlencode存在于urllib模块中.

python django comparison urlencode urlparse

29
推荐指数
3
解决办法
5万
查看次数


如何在必要时将"http://"协议添加到URL中?

我需要解析一个URL.我目前正在使用urlparse.urlparse()和urlparse.urlsplit().

问题是,当不存在该方案时,我无法从URL获取"netloc"(主机).我的意思是,如果我有以下网址:

www.amazon.com/Programming-Python-Mark-Lutz/dp/0596158106/ref=sr_1_1?ie=UTF8&qid=1308060974&sr=8-1

我无法获得netloc:www.amazon.com

根据python文档:

遵循RFC 1808中的语法规范,只有在'//'正确引入的情况下,urlparse才会识别netloc.否则,输入被假定为相对URL,因此以路径组件开始.

所以,这是故意的.但是,我仍然不知道如何从该URL获取netloc.

我想我可以检查该方案是否存在,如果不存在,则添加它,然后解析它.但是这个解决方案看起来并不是很好.

你有更好的主意吗?

编辑: 谢谢你的所有答案.但是,我不能做Corey和其他人提出的"startwith"事情.如果我得到一个其他协议/方案的URL我会搞砸了.看到:

如果我得到这个网址:

ftp://something.com
Run Code Online (Sandbox Code Playgroud)

使用提议的代码,我会在开头添加"http://"并将其弄乱.

我发现的解决方案

if not urlparse.urlparse(url).scheme:
   url = "http://"+url
return urlparse.urlparse(url)
Run Code Online (Sandbox Code Playgroud)

需要注意的事项:

我先做一些验证,如果没有给出方案,我认为它是http://

python url url-parsing urlparse

19
推荐指数
4
解决办法
1万
查看次数

从url解析查询部分

我想从url解析查询部分,这是我的代码:

>>> from urlparse import urlparse, parse_qs
>>> url = '/?param1&param2=2'
>>> parse_qs(urlparse(url).query)
>>> {'param2': ['23']}
Run Code Online (Sandbox Code Playgroud)

此代码看起来不错,但"parse_qs"方法丢失了诸如"param1"或"param1 ="之类的查询参数.我可以用stantard库解析查询部分并保存所有参数吗?

python urlparse

17
推荐指数
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 urlparse.parse_qs unicode url

urlparse.parse_qs对于解析url参数非常有用,它可以通过简单的ASCII url工作str.所以我可以解析一个查询,然后使用urllib.urlencode解析后的数据构建相同的路径:

>>> import urlparse
>>> import urllib
>>>
>>> path = '/?key=value' #path is str
>>> query = urlparse.urlparse(path).query
>>> query
'key=value'
>>> query_dict = urlparse.parse_qs(query)
>>> query_dict
{'key': ['value']}
>>> '/?' + urllib.urlencode(query_dict, doseq=True)
'/?key=value' # <-- path is the same here
Run Code Online (Sandbox Code Playgroud)

当url包含百分比编码的非ASCII参数时,它也可以正常工作:

>>> value = urllib.quote(u'????????'.encode('utf8'))
>>> value
'%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5'
>>> path = '/?key=%s' % value
>>> path
'/?key=%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5'
>>> query = urlparse.urlparse(path).query
>>> query
'key=%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5'
>>> query_dict = urlparse.parse_qs(query)
>>> query_dict
{'key': …
Run Code Online (Sandbox Code Playgroud)

python django urlencode urlparse

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