我有一个字符串,其中包含使用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']
所以我只得到字符串的第一个元素的结果。 如何检索所有网址的这些解析,并存储它们以便我可以提取信息?我想知道有多少年份和月份的链接。
同样奇怪的是,在执行此操作后,当我执行print(dat)
时,我只获得第一个元素http://www.foo.com/2016/01/0124
,似乎urlparse
不适用于多个网址。
答案 0 :(得分:2)
根据您的问题,您看起来有一个由新行分隔的网址列表。在这种情况下,您可以使用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 将它放入一个漂亮的单行中:
list_pathlist = [urlparse(url)[2].split('/') for url in dat.split('\n')]