Pobieranie / eksportowanie pliku csv po kliknięciu przycisku w pythonie web.py

Używam Pythonaweb.py ramy do budowy małej aplikacji internetowej.

Składa się z a

Home page który pobiera adres URL jako dane wejścioweCzytaanchor text ianchor tags z tegoZapisuje go do pliku csv i pobiera

Tutaj kroki 2 i 3 mają miejsce, gdy kliknęliśmy naexport the links przycisk, poniżej jest mój kod

code.py

import web
from web import form
import urlparse
from urlparse import urlparse as ue
import urllib2
from BeautifulSoup import BeautifulSoup
import csv
from cStringIO import StringIO

urls = (
    '/', 'index',
    '/export', 'export',
)

app =  web.application(urls, globals())
render = web.template.render('templates/')

class index:
    def GET(self):
        return render.home()


class export:

    def GET(self):
        i = web.input()
        if i.has_key('url') and i['url'] !='':
            url = i['url'] 
            page = urllib2.urlopen(url)
            html = page.read()
            page.close()


            decoded = ue(url).hostname
            if decoded.startswith('www.'):
                decoded = ".".join(decoded.split('.')[1:])
            file_name = str(decoded.split('.')[0])

            csv_file = StringIO()
            csv_writer = csv.writer(csv_file)
            csv_writer.writerow(['Name', 'Link'])

            soup = BeautifulSoup(html)
            for anchor_tag in soup.findAll('a', href=True):     
                csv_writer.writerow([anchor_tag.text,anchor_tag['href']]) 
            web.header('Content-Type','text/csv')       
            web.header('Content-disposition', 'attachment; filename=%s.csv'%file_name)
            return csv_file.getvalue()

if __name__ == "__main__":
    app.run()

home.html:

$def with()
<html>
 <head>
   <title>Home Page</title>
 </head>
 <body>
     <form method="GET" action='/export'>
        <input type="text" name="url" maxlength="500" />
        <input class="button" type="submit" name="export the links" value="export the links" />
      </form>
 </body>
</html>

Powyższy kod html wyświetla formularz z polem tekstowym, które pobiera adres URL i ma przyciskexport the links przycisk todownloads/exports plik csv z łączami znaczników zakotwiczenia i tekstem.

Na przykład kiedy przesyłamyhttp://www.google.co.in i kliknijexport the links, wszystkie adresy URL kotwic i tekst zakotwiczenia zapisują się w pliku csv i pomyślnie się pobierają

ale na przykład, gdy podaliśmy inny adres URLhttp://stackoveflow.com natychmiast i kliknijexport the links przycisk, plik csv (utworzony z nazwą domeny adresu URL, jak pokazano w powyższym kodzie) jest pobierany z linkami tagów, ale pobrany plik csv zawiera również dane (tekst kotwicy i linki) poprzedniego adresu URL, który jesthttp://www.google.co.in.

Oznacza to, że dane są nadpisywane w tym samym pliku CSV z różnych adresów URL, czy ktoś może dać mi znać, co jest nie tak w powyższym kodzie (export class), który generuje plik csv, dlaczego dane nadpisują zamiast tworzyć nowy plik csv z inną nazwą tworzoną dynamicznie?

Ostatecznie moim zamiarem jest pobranie / wyeksportowanie nowego pliku csv z nazwą domeny (pokrojoną w powyższy kod) z adresu URL poprzez zapisanie danych (zakotwiczenie tekstu znacznika i adresu URL) z adresu URL do niego za każdym razem, gdy podajemy nowy adres URL .

Czy każdy może rozszerzyć / wprowadzić niezbędne zmiany w moim powyższym kodzie, aby pobrać indywidualny plik csv dla indywidualnego adresu URL .........

questionAnswers(0)

yourAnswerToTheQuestion