我正在使用python并尝试获取url的特定部分,如下所示
from urlparse import urlparse as ue
url = "https://www.google.co.in"
img_url = ue(url).hostname
结果
^{pr2}$案例1:
实际上,我将有许多url(存储在一个列表或其他地方),所以我想要的是,需要在url中找到上面的domain name
,并获取www.
之后和{first dot
开始,在second dot
之前,这在当前场景中只会产生google
。在
所以假设给定的url是www.gmail.com
,我应该只获取gmail
,所以不管给定的url是什么,代码都应该获取以第一个点开始,第二个点之前的部分。在
案例2:
另外,有些url可以像这样直接给定domain.com, stackoverflow.com
,而url中没有{stackoverflow
和{
最后,我的目的是从gmail, stackoverflow, google
的url中获取主名称,如下。。。。。在
一般来说,如果我有一个url,我可以使用list slicing
并将获取字符串,但是我将有许多ulr,因此需要像上面提到的那样动态地获取想要的部分
有人能告诉我如何满足上述概念吗?在
使用一组预定义的顶级doamains怎么样?在
这有点老套,可能对某些人来说很神秘,但它确实起了作用,而且不需要做更多的事情:)
这是我的解决方案,最后,域包含了您期望的域列表。在
讨论
首先,我们使用
urlparse.urlparse()
从url列表中提取主机名。主机名列表如下所示:['www.google.com', 'stackoverflow.com网站, ... ]
在下一行中,我们使用点作为分隔符将每个主机拆分为多个部分。hostparts中的每个项目如下所示:
[['www','google','com'],['stackoverflow','com']。。。]
有趣的工作在下一行。这一行说,“如果点前面的第一部分是www,那么域就是第二部分(p[1])。否则,域是第一部分(p[0])。域列表如下所示:
['google','stackoverflow','google','domain']
我的代码不知道如何处理登录gmail.com香港。我希望有人能解决这个问题,因为我要迟到了。更新:看看John Kurkowski的tldextact,它应该能满足您的需要。
你为什么不能这么做:
此外,您可能希望更改for循环中的if语句,因为某些域可能以其他要删除的内容开头。在
相关问题 更多 >
编程相关推荐