【发布时间】:2018-09-26 18:13:43
【问题描述】:
我有来自不同网站的 URL 的大 DataFrame。我想检查它与哪个网站相关。定义网站的特征是它的根 url 从额外信息中清除(例如,对于 http://www.agpu.net/,根 url 将是 agpu.net
所以主要目标是找到与给定 url 相关的根。例如,http://www.mordgpi.ru/ 应该得到标签 mordgpi.ru 而不是 gpi.ru。这也不应该仅适用于根网页 url,例如,https://www.mordgpi.ru/our-life/news/46/55116/
url 的数据集如下所示:
url
---------------------
http://pnu.edu.ru/ru/
https://www.dvfu.ru/
http://donstu.ru/
http://www.elsu.ru/
http://ivgpu.com/
http://ivanovo.ac.ru/
http://www.isuct.ru/
对于根:
root
-------------
pnu.edu.ru/ru
dvfu.ru
donstu.ru
elsu.ru
ivgpu.com
ivanovo.ac.ru
isuct.ru
对于给定的 url,我尝试按照以下方式获取 root,但效果不佳:
root = roots['root'].str.lower().apply(lambda x: x in url).to_frame()
root = root[root.root]
我可以使用正则表达式或其他方式实现这一点吗?感谢任何帮助
【问题讨论】:
-
看起来这个网站 pnu.edu.ru/ru 的结构与其他网站不同,因为它的末尾有额外的“/ru”,所以它会遵循单独的约定?跨度>
-
@Turo 我想
_root_应该有一些规则,比如http(s)://(www.)_root_(/)(_smth_else_)->_root_ -
我只是想注意你所说的 root 在第一个示例中与其余 6 个具有不同的结构。所以这将是 2 种不同的正则表达式方法。
-
对于像
ac.ru这样的顶级域名,只有当您拥有允许的顶级域名列表时,没有规则可以使用文本处理工具将域名的第一部分与域名区分开来。
标签: python regex pandas http url