Kod

from bs4 import BeautifulSoup
import requests
import dataset
db = dataset.connect('sqlite:///:memory:')
 
table = db['sady']
 
s = requests.Session()
r = s.get('http://bip.ms.gov.pl/pl/rejestry-i-ewidencje/lista-sadow-powszechnych/list,1.html')
def parse(text):
    soup = BeautifulSoup(text)
    tbl = soup.find('table',attrs={'class':['tabelkaszara']})
    header = map(lambda x: x.text.strip(), tbl.tr.findAll('th'))
    for tr in tbl.findAll('tr'):
        row = [td.text.strip() for td in tr.findAll('td')]
        yield dict(zip(header, row))
 
 
for i in xrange(1,47):
    r = s.get('http://bip.ms.gov.pl/pl/rejestry-i-ewidencje/lista-sadow-powszechnych/list,%s.html' % (str(i)))
    for row in parse(r.text):
        table.insert(row)
        print row
 
dataset.freeze(table.all(), filename='sady.csv', format='csv')

Jam potrzebował ino listy nazw sądów. Jeżeli ktoś chce udoskonalać - droga wolna.

Output

Wynik: sady.csv ~~DISCUSSION~~

zbiory/sady-powszechne.txt · ostatnio zmienione: 2013/07/30 05:16 przez naczelnik
Public Domain
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0