Python 如何从一个字符串中解析出 2 个 URL,然后将其映射回来?

问题描述 投票:0回答:1

我在pandas数据框中有一列,其中一些值是这样的格式。"From https:/....com?gclid=。...到 https:/...com". 我想要的是只解析第一个URL,这样gclid和其他ID就会消失,我想把它映射回数据框架中,比如说 "From https:/....comhttps:/...com"

我知道有一个叫urllib的python模块,但是如果我把它应用到这个字符串上并调用path(),它只是解析了第一个URL,然后我失去了和第一个URL一样重要的其他部分。

谁能帮帮我?谢谢你的帮助

python urllib
1个回答
1
投票

如果你使用DataFrame,那么使用 replace() 它可以使用regex来查找文本,如 "?.... " (以 ? 并以 space - 或以 ? 而且只有不同的字符 space - '\?[^ ]+')

import pandas as pd

df = pd.DataFrame({'text': ["From https://....com?gclid=... to https://...com"]})

df['text'] = df['text'].str.replace('\?[^ ]+', '')

结果

                                     text
0  From https://....com to https://...com

另外,你还可以尝试更复杂的regex。 你也可以尝试更复杂的regex来确保它是url的一部分,它以 http.

df['text'] = df['text'].str.replace('(http[^?]+)\?[^ ]+', '\\1')

我用的是 (...) 捕捉这个网址之前 ?... 我把它放回去,用 \\1 (已经没有 ?...)

© www.soinside.com 2019 - 2024. All rights reserved.