Na dzień 31.07.2013 w wykazie podmiotów http://www.bip.gov.pl/subjects/index/14013 znajdowało się 68 OPP.

Kod

import requests
from bs4 import BeautifulSoup
import dataset
from itertools import imap,islice
import requests_cache
 
requests_cache.configure('/tmp/http_cache')
db = dataset.connect('sqlite:///subjects.db')
table = db['opp']
 
def grab(krs , s=requests.Session()):
    print "Grab data for ",krs
    r = s.post('http://sprawozdaniaopp.mpips.gov.pl/Search/Details/%s' % ( str(krs).strip(),) )
    soup = BeautifulSoup(r.text)
    data = dict([map(lambda x:x.text.strip(),tr.findAll('td')) for tr in soup.table.findAll('tr')])
    data['KRS'] = krs
    print data
    return data
 
def load(filename):
    s = requests.Session()
    with open(filename) as fp:
        for x in fp:
            yield grab(x,s)
 
table.insert_many(load('numery_krs.txt'))

Instrukcja użycia

Powyższy skrypt potrzebuje informacji o podmiotach do scrapowania. Przyjmuje je jako plik 1 numer - 1 linia.

Wynik

dip/bip.gov.pl/opp.txt · ostatnio zmienione: 2013/07/31 23:14 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