我想使用python中的模式匹配从链接列表中提取url的一部分
示例:
http://www.fairobserver.com/about/
http://www.fairobserver.com/about/interview/
这是我的正则表达式:
re.match(r'(http?|ftp)(://[a-zA-Z0-9+&/@#%?=~_|!:,.;]*)(.\b[a-z]{1,3}\b)(/about[a-zA-Z-_]*/?)', str(href), re.IGNORECASE)
我想得到只以/about
或/about/
结尾的链接
但是上面的regex选择了所有包含“about”单词的链接
建议您使用适当的库解析url,例如
urlparse
。在例如
屈服:
^{pr2}$或者
屈服
如果您只希望链接以以下两种方式结束,请使用html解析器和str.endwith公司名称:
也可以将regex与beauthulsoup一起使用:
^{pr2}$根据您的评论说明,完全匹配}的路径。
下面是在python2/3中使用urlparse。在
/about/
或{输出如下:
^{pr2}$重要的部分是}来规范化url,这样我们就不必使用regex了。在
urlparse(url.rstrip('/')).path == '/about'
,通过在解析之前去掉尾随的{相关问题 更多 >
编程相关推荐