Ищите строку внутри веб-страницы, не сохраняя ее в файле? - PullRequest
0 голосов
/ 26 октября 2011

Я новичок в 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

Это моя функция для загрузки веб-страницы и получения одного URL-адреса в соответствии с некоторыми условиями.Оно работает.Но я хочу применить более эффективный способ, чем сохранение сети в файл.Я хочу сделать что-то похожее на grep без сохранения и чтения файлов (это очень медленно).И другой, более быстрый способ скопировать URL в строку.

Пожалуйста, напишите код для поиска URL внутри содержимого без сохранения содержимого в файл.

Я знаю, что есть многовопросы, но я был бы очень признателен, если бы вы ответили на все эти вопросы.

1 Ответ

1 голос
/ 26 октября 2011

Это должно вывести вас вперед.Этот скрипт печатает все ссылки с веб-страницы, используя ваше регулярное выражение:

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