可能重复:
如何从URL中提取域名
我想从URL中提取网站,即console.aws.amazon.com从以下URL中提取网站.
>>> ts
'https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances,EC2 Management Console,12/3/2012 4:34:57 PM,11,0,,25806'
>>> re.match(ts,'(")?http(s)?://(.*?)/').group(0)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
re.match(ts,'(")?http(s)?://(.*?)/').group(0)
AttributeError: 'NoneType' object has no attribute 'group'
Run Code Online (Sandbox Code Playgroud)
我在JS中尝试了这个正则表达式并且它有效.知道为什么这在JS中匹配,但它在Python中不起作用?
你的比赛不正确.Python doco说:
re.match(pattern, string, flags=0)
Run Code Online (Sandbox Code Playgroud)
你在做:
re.match(string, pattern)
Run Code Online (Sandbox Code Playgroud)
所以只需将其更改为:
re.match('(")?http(s)?://(.*?)/', ts).group(0)
Run Code Online (Sandbox Code Playgroud)
使用urlparse
>>> from urlparse import urlparse
>>> u = 'https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances,EC2 Management Console,12/3/2012 4:34:57 PM,11,0,,25806'
>>> p = urlparse(u)
>>> p
ParseResult(scheme='https', netloc='console.aws.amazon.com', path='/ec2/home', params='', query='region=us-east-1', fragment='s=Instances,EC2 Management Console,12/3/2012 4:34:57 PM,11,0,,25806')
>>> p.netloc
'console.aws.amazon.com'
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |