免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13607 | 回复: 8
打印 上一主题 下一主题

python:判断一个字符串是否是URL [复制链接]

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-03 15:57 |只看该作者 |倒序浏览
07/Aug/2014:15:36:32     10.6.99.74     cyjtest   124.160.136.240
07/Aug/2014:15:36:32     10.6.99.74     cyjtest    124.160.136.250
07/Aug/2014:15:36:59     10.6.99.74     cyjtest     www.baidu.com
07/Aug/2014:15:37:00     10.6.99.74     cyjtest     sports.sina.com.cn
包含很多行上述行的文本text1.txt:
Python code:

fr = open (r'text1.txt','r')
fw = open(r'text2.txt','w+')
for text in fr:
    li = text.split(' ')
    if li[3].......:
       fw.write(text)
fr.close()
fw.close()

想判断li[3]是不是URL,如果是就写入新文件,不是(即IP)就不写入,请问省略号部分怎么写?谢谢

论坛徽章:
0
2 [报告]
发表于 2014-09-03 16:02 |只看该作者
我觉得你可以按.分割一下字符串,然后判断每部分是否在字母集合里,如果在那就说明是个地址,  if li[3].split('.')[0] in string.letters:XXXX

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
3 [报告]
发表于 2014-09-03 16:26 |只看该作者
huangxiaohen 发表于 2014-09-03 16:02
我觉得你可以按.分割一下字符串,然后判断每部分是否在字母集合里,如果在那就说明是个地址,  if li[3].spl ...

字母集合怎么用,python小白,
fr = open (r'text1.txt','r')
fw = open(r'text2.txt','w+')
for text in fr:
    li = text.split(' ')
    tf = re.match(/^(http://){0,1}[A-Za-z0-9][A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,}[\43-\176]*$/,li[3])
    if tf:
       fw.write(text)
fr.close()
fw.close()
这样可以吗?

论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
4 [报告]
发表于 2014-09-03 16:26 |只看该作者
你要严格的话 url 就用re 去匹配

论坛徽章:
0
5 [报告]
发表于 2014-09-03 16:35 |只看该作者
不用那么麻烦,string.letters  就是所有大小写字母集合了. 导入个string模块

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2014-09-03 16:54 |只看该作者
不知道楼主所说的 "URL" 判断标准是啥?

有 http ftp 开头?
域名?
有 .html ?
有 /.../... 这样 ?

在我看来, 楼主 列出来的文件中的四个都可以算做是 URL, 至少, 丢到IE下能可能被访问.

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
7 [报告]
发表于 2014-09-03 16:54 |只看该作者
huangxiaohen 发表于 2014-09-03 16:35
不用那么麻烦,string.letters  就是所有大小写字母集合了. 导入个string模块

好的,我试试,谢谢!

论坛徽章:
0
8 [报告]
发表于 2014-09-04 09:14 |只看该作者
我也是初学者,我是这么写的
import re
p=re.compile('\D')
f=open('hello.txt','r')
fw=open('12.txt','w+')
for i in f.readlines():
    i=i.split()
    if p.match(i[3]):
        fw.write(i[3])
f.close()
fw.close()

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
9 [报告]
发表于 2014-09-04 10:49 |只看该作者
回复 8# zhwei228
恩,谢谢!

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP