标签: urlparse

如何使用Python从URL中删除查询字符串

例:

http://example.com/?a=text&q2=text2&q3=text3&q2=text4
Run Code Online (Sandbox Code Playgroud)

删除" q2 "后,它将返回:

http://example.com/?q=text&q3=text3
Run Code Online (Sandbox Code Playgroud)

在这种情况下,有多个" q2 ",所有都被删除.

python cgi http urlparse

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

Python:如何检查字符串是否是有效的IRI?

是否有标准功能来检查IRI,检查URL显然我可以使用:

parts = urlparse.urlsplit(url)  
    if not parts.scheme or not parts.netloc:  
        '''apparently not an url'''
Run Code Online (Sandbox Code Playgroud)

我使用包含Unicode字符的URL尝试了上述内容:

import urlparse
url = "http://fdasdf.fdsfî??îs.fss/?î?î"
parts = urlparse.urlsplit(url)
if not parts.scheme or not parts.netloc:  
    print "not an url"
else:
    print "yes an url"
Run Code Online (Sandbox Code Playgroud)

而我得到的是yes an url.这是否意味着我对这个有效IRI的测试很好?还有另外一种方法吗?

python url urlparse python-2.7

14
推荐指数
1
解决办法
9154
查看次数

使用urlparse解析自定义URI(Python)

我的应用程序创建自定义URI(或URL?)来标识对象并解决它们.问题是Python的urlparse模块拒绝解析未知的URL方案,就像解析http一样.

如果我不调整urlparse的uses_*列表,我得到这个:

>>> urlparse.urlparse("qqqq://base/id#hint")
('qqqq', '', '//base/id#hint', '', '', '')
>>> urlparse.urlparse("http://base/id#hint")
('http', 'base', '/id', '', '', 'hint')
Run Code Online (Sandbox Code Playgroud)

这就是我的工作,我想知道是否有更好的方法:

import urlparse

SCHEME = "qqqq"

# One would hope that there was a better way to do this
urlparse.uses_netloc.append(SCHEME)
urlparse.uses_fragment.append(SCHEME)
Run Code Online (Sandbox Code Playgroud)

为什么没有更好的方法来做到这一点?

python url python-2.6 urlparse

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

如何在Python中给出两个绝对URL来构造相对url

是否有内置函数来获取这样的url:../images.html给定一个像这样的基本URL:http://www.example.com/faq/index.html和一个目标URL,如http://www.example.com/images.html

我检查了urlparse模块.我想要的是urljoin()函数的对应物.

python urlparse

13
推荐指数
2
解决办法
2759
查看次数

找到http://和/或www.并从域中剥离.离开domain.com

我对python很新.我正在尝试解析URL文件,只留下域名.

我的日志文件中的一些网址以http://开头,有些网址以www.Some开头.

这是我的代码中删除http://部分的部分.我需要添加什么来查找http和www.并删除两个?

line = re.findall(r'(https?://\S+)', line)
Run Code Online (Sandbox Code Playgroud)

目前,当我运行代码时,只有http://被剥离.如果我将代码更改为以下内容:

line = re.findall(r'(https?://www.\S+)', line)
Run Code Online (Sandbox Code Playgroud)

只有以两者开头的域都会受到影响.我需要代码更有条件.TIA

编辑...这是我的完整代码......

import re
import sys
from urlparse import urlparse

f = open(sys.argv[1], "r")

for line in f.readlines():
 line = re.findall(r'(https?://\S+)', line)
 if line:
  parsed=urlparse(line[0])
  print parsed.hostname
f.close()
Run Code Online (Sandbox Code Playgroud)

我把原帖误认为正则表达式.它确实使用urlparse.

python url urlparse

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

Python中是否有预定义的URL类?

我在python-modules,Django,Zope或Python中的任何地方寻找类似java.net.URL的东西.我希望它最好是出于语义原因,因为有关程序的分析结果意味着URL在其中起着至关重要的作用.结果是这样的URL类在该程序中也将具有很大的实际用途.

当然我可以自己写这样的课程,但在开始重新发明轮子之前我想环顾四周.

我确实看过urllib2urlparse.它urlparse基本上具有我需要的功能,但它没有将它封装到类中java.net.URL.关于我对我的程序的分析,它是颠倒的.

我看着也进入源代码urlparse的类SplitResultParseResult.它们具有一些基本功能,可用于子类化.但是我必须将其余的urlparse函数重写为子类方法.

我还发现了mxURL - Python的灵活URL数据类型.它非常接近我真正想要的.只是它似乎对我的目的来说太过分了.

有人可以建议另一种选择吗 我应该继续重新发明轮子吗?

我的解决方案

为了获得我的URL类,我基本上做了两件事:

  1. 继承自urlparse.ResultMixin.
  2. 定义仅调用urlparse.urlparse()结果并将结果转换为URL实例参数的函数.

python url urlparse

11
推荐指数
4
解决办法
3827
查看次数

urlparse.urlparse在方案后返回3'/'而不是2

我想在给定的url字符串前添加'http'方案名称,如果它缺少的话.否则,留下网址,所以我认为urlparse是正确的方法.但是每当没有方案并且我使用get url时,我在方案和域之间得到///而不是'//'.

>>> t = urlparse.urlparse('www.example.com', 'http')
>>> t.geturl()
'http:///www.example.com' # three ///
Run Code Online (Sandbox Code Playgroud)

如何转换此网址,使其实际看起来像:

'http://www.example.com' # two //
Run Code Online (Sandbox Code Playgroud)

python urlparse

8
推荐指数
1
解决办法
900
查看次数

在Python 2中修改URL组件

有没有更简洁的方法来修改Python 2中URL的某些部分?

例如

http://foo/bar -> http://foo/yah
Run Code Online (Sandbox Code Playgroud)

目前,我这样做:

import urlparse

url = 'http://foo/bar'

# Modify path component of URL from 'bar' to 'yah'
# Use nasty convert-to-list hack due to urlparse.ParseResult being immutable
parts = list(urlparse.urlparse(url))
parts[2] = 'yah'

url = urlparse.urlunparse(parts)
Run Code Online (Sandbox Code Playgroud)

有更清洁的解决方案吗?

python url python-2.x urlparse

8
推荐指数
1
解决办法
5697
查看次数

如何使用`urlparse`检查URL是否有效?

在打开URL读取数据之前,我想检查URL是否有效.

我用的功能,urlparseurlparse包:

if not bool(urlparse.urlparse(url).netloc):
 # do something like: open and read using urllin2
Run Code Online (Sandbox Code Playgroud)

但是,我注意到一些有效的URL被视为已损坏,例如:

url = upload.wikimedia.org/math/8/8/d/88d27d47cea8c88adf93b1881eda318d.png
Run Code Online (Sandbox Code Playgroud)

此URL有效(我可以使用我的浏览器打开它).

有没有更好的方法来检查URL是否有效?

python urllib2 url-parsing urlparse

8
推荐指数
4
解决办法
2万
查看次数

如何在python中更改url查询的值?

 url = "http://www.example.com?type=a&type1=b&type2=c"
 urllist = get_urllist(url)
 trigger = ["'or '1'='1'"," 'OR '1'='2'","'OR a=a"]

def get_urllist(url): 
    url_parsed = urlparse.urlparse(url)
    #extract the query parameters of the URL 
    query =  urlparse.parse_qs(url_parsed.query)
    #get the list of query 
    query_list = query_list(query)
    #Get Base url 
    url = urlparse._replace(query=None).geturl()
    #modify url to get url_list 
    for query in query_list : 
       # change the original query to get the expected result 


 return url_list 


def query_list(query):
     for t in trigger:
         for key, value in query.items():
            query[key] += t
         query_list.append(query) 

     return …
Run Code Online (Sandbox Code Playgroud)

python url-parsing urlparse

8
推荐指数
3
解决办法
9374
查看次数

标签 统计

python ×10

urlparse ×10

url ×5

url-parsing ×2

cgi ×1

http ×1

python-2.6 ×1

python-2.7 ×1

python-2.x ×1

urllib2 ×1