2011-10-25 6 views
0

저는 파이썬을 처음 접했고 몇 가지 질문이 있습니다 !!파일을 파일에 저장하지 않고 웹 페이지에서 문자열을 찾으십니까?

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 

이것은 웹 페이지를 다운로드하고 일부 조건에 따라 URL 하나를 취하는 제 기능입니다. 그것은 작동합니다. 하지만 웹에 파일을 저장하는 것보다 효율적인 방법을 적용하고 싶습니다. grep과 비슷한 것을 만들고 저장하고 파일을 읽지 않고 싶습니다 (정말 느립니다). 그리고 다른 빠른 방법으로 URL을 문자열로 복사하십시오.

콘텐츠를 파일에 저장하지 않고 콘텐츠 내부 URL을 찾는 코드를 작성하십시오.

나는 많은 질문이 있다는 것을 알고 있지만 그 모든 것을 대답하면 매우 감사 할 것입니다.

답변

1

앞으로 나갈 것입니다. 이 스크립트는 정규 표현식을 사용하여 웹 페이지의 모든 링크를 인쇄합니다.

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