在网页中查找字符串而不将其保存在文件中?

时间:2011-10-25 20:04:30

标签: python regex urllib2

我是Python的新手,我有一些问题!!

def extractdownloadurl(url):

    uresponse = urllib2.urlopen(url) #open url
    contents = uresponse.readlines() #readlines from url file
    fo = open("test.html","w") #open test.html
    for line in contents: 
        fo.write(line)#write lines from url file to text file
    fo.close()#close text file

    cadena = os.system('more test.html | grep uploads | grep zip >> cadena.html')

    f = open("cadena.html","r")
    text = f.read()
    f.close()


    match = re.search(r'href=[\'"]?([^\'" >]+)', text)
    if match:
        cadena=match.group(0)


    texto = cadena[6:]


    os.system('rm test.html')
    os.system('rm cadena.html')
    return texto

这是我的功能,可以下载网页并按照某些条件获取一个网址。有用。但我想应用一种比在文件上保存Web更有效的方法。我想在没有保存和读取文件的情况下制作类似于grep的东西(它真的很慢)。以及将网址复制到字符串的其他更快捷方式。

请编写代码以在内容中查找网址而不将内容保存到文件中。

我知道有很多问题,但如果你回答所有问题,我将非常感激。

1 个答案:

答案 0 :(得分:1)

这应该可以帮助你前进。此脚本使用正则表达式打印网页中的所有链接:

import re, urllib
page = urllib.urlopen("http://sebsauvage.net/index.html").read()
urls = re.findall('href=[\'"]?([^\'" >]+)',page)
for url in urls:
    print url