在 python 中使用 urlparse 拆分多个 url
split multiple urls using urlparse in python
我有一个字符串,其中包含使用 BeautifulSoup
提取的多个网址,我想拆分所有这些网址以提取日期和年份(网址中包含日期和年份)。
print(dat)
http://www.foo.com/2016/01/0124
http://www.foo.com/2016/02/0122
http://www.foo.com/2016/02/0426
http://www.foo.com/2016/03/0129
.
.
我尝试了以下方法,但它只检索到第一个:
import urlparse
parsed = urlparse(dat)
path = parsed[2] #defining after www.foo.com/
pathlist = path.split("/")
['', '2016', '01', '0124']
所以我只得到字符串第一个元素的结果。
我如何检索所有 url 的这些解析,并存储它们以便我可以提取信息?我想知道年和月有多少个链接。
同样奇怪的是,在执行此操作后,当我执行 print(dat)
时,我只得到第一个元素 http://www.foo.com/2016/01/0124
,似乎 urlparse
不适用于多个 url。
根据您的问题,您似乎有一个由新行分隔的 URL 列表。在这种情况下,您可以使用 for
循环来迭代它们:
list_pathlist = []
for url in dat.split('\n'):
parsed = urlparse(url)
path = parsed[2] #defining after www.foo.com/
pathlist = path.split("/")
list_pathlist.append(pathlist)
在这种情况下,我怀疑结果 (list_pathlist
) 将类似于:
[['', '2016', '01', '0124'],['', '2016', '02', '1222'],...]
所以 列表列表。
或者您可以使用 list-comprehension:
将其放入漂亮的 one-liner
list_pathlist = [urlparse(url)[2].split('/') for url in dat.split('\n')]
我有一个字符串,其中包含使用 BeautifulSoup
提取的多个网址,我想拆分所有这些网址以提取日期和年份(网址中包含日期和年份)。
print(dat)
http://www.foo.com/2016/01/0124
http://www.foo.com/2016/02/0122
http://www.foo.com/2016/02/0426
http://www.foo.com/2016/03/0129
.
.
我尝试了以下方法,但它只检索到第一个:
import urlparse
parsed = urlparse(dat)
path = parsed[2] #defining after www.foo.com/
pathlist = path.split("/")
['', '2016', '01', '0124']
所以我只得到字符串第一个元素的结果。 我如何检索所有 url 的这些解析,并存储它们以便我可以提取信息?我想知道年和月有多少个链接。
同样奇怪的是,在执行此操作后,当我执行 print(dat)
时,我只得到第一个元素 http://www.foo.com/2016/01/0124
,似乎 urlparse
不适用于多个 url。
根据您的问题,您似乎有一个由新行分隔的 URL 列表。在这种情况下,您可以使用 for
循环来迭代它们:
list_pathlist = []
for url in dat.split('\n'):
parsed = urlparse(url)
path = parsed[2] #defining after www.foo.com/
pathlist = path.split("/")
list_pathlist.append(pathlist)
在这种情况下,我怀疑结果 (list_pathlist
) 将类似于:
[['', '2016', '01', '0124'],['', '2016', '02', '1222'],...]
所以 列表列表。
或者您可以使用 list-comprehension:
将其放入漂亮的 one-linerlist_pathlist = [urlparse(url)[2].split('/') for url in dat.split('\n')]