我使用邮递员从api获取网址,因此我可以查看某些标题。响应已另存为.json文件。
我的response.json文件的片段看起来像这样:
"apiUrl":"https://api.ft.com/example/83example74-3c9b-11ea-a01a-example547046735","title":{"title":"Example title example title example title"},"lifecycle":{"initialPublishDateTime":"2020-01-21T22:54:57Z","lastPublishDateTime":"2020-01-21T23:38:19Z"},"location":{"uri":"https://www.ft.com/exampleurl/83example74-3c9b-11ea-a01a-example547046735"},"summary"............(this continues for all different titles I found)
因为我想看一下文章,所以我想生成所有URL的列表。我对apiUrl不感兴趣,而仅对uri感兴趣。
我当前的python文件看起来像这样
with open ("My path to file/response.json") as file:
for line in file:
urls = re.findall('https://(?:[-\www.]|(?:%[\da-fA-F]{2}))+', line)
print(urls)
这给了我以下输出:['https://api.ft.com', 'https://www.ft.com', 'https://api.ft.com', 'https://www.ft.com',........
但是,我希望能够看到www.ft.com的整个URL(所以不是api.ft.com的URL,因为我对此不感兴趣)。例如,我希望我的程序提取如下内容:https://www.ft.com/thisisanexampleurl/83example74-3c9b-11ea-a01a-example547046735
我希望程序对整个响应文件执行此操作
有人知道这样做的方法吗?
将不胜感激。雷蒙德
[从下面提取的方法有很多,是最简单的表示方法
import re
re.search("(?P<url>https?://[^\s]+)", string)