0

我有一个包含多个 url 提取的字符串,BeautifulSoup我想拆分所有这些 url 以提取日期和年份(url 中包含日期和年份)。

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。

4

1 回答 1

2

根据您的问题,您似乎有一个由换行符分隔的 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将其放入一个不错的单行中:

list_pathlist = [urlparse(url)[2].split('/') for url in dat.split('\n')]
于 2017-01-28T22:47:03.920 回答