在python中我想在这样的文本文件中读取url,但是超过1000行。我怎么才能只拿走每一行的网址?我需要将照片下载到我的数据集中。 感谢
=============
Lexi Ainsworth 1 1 http://cdn.soaps.sheknows.com/images/news/22537_1_15562.jpg 45,50,174,179 571435cb57e518ae0cc5855eb8f1bea0b89d447d8ad7f9379fbfb3ab794333f5 Lexi Ainsworth 2 2 http://trialx.com/curetalk/wp-content/blogs.dir/7/files/2011/10/celebrities/Lexi_Ainsworth-1.jpg 130,112,396,378
答案 0 :(得分:0)
你确实遇到了一个难题,因为网址可以是例如括在括号中。你怎么知道右括号是URL的一部分还是不是URL的一部分?
这听起来像是正则表达式的工作,但不幸的是它并不漂亮而且并不完美。有关问题困难原因的一些示例和评论,请参阅http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/。
请参阅此示例了解某些有用的内容:
re.match('.*(https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[A-Za-z0-9+&@#/%=~_|])', 'abc http://www.google.fi def').groups(0)
答案 1 :(得分:0)
相对于空格拆分整个字符串,并选择以http / https开头的所有子字符串?我假设您的所有意图和目的都限于这两个协议。
如果您不知道该行是否以完整超链接结束,或者超链接是否在下一行继续,则会出现问题。
答案 2 :(得分:0)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
# read the original text
f=file("yourtextfile.txt", "r")
content=f.read().splitlines()
f.close()
# create the new file to save the url's
f = file("newfile.txt","w")
f = open("newfile.txt","w")
# for every line in the text
for line in content:
a = line
contador = 0
contador2 = 1
for charac in a:
# for every character in the line
if charac == "\t" :
# if the next characters after \t are http we copy the url till other \t appear
if a[contador2:contador2+4] == 'http':
url = ""
while a[contador2] != "\t":
url = url + a[contador2]
contador2 = contador2+1
f.write(url + '\n')
contador = contador +1
contador2 = contador2 +1
f.close()