Skip to content

Instantly share code, notes, and snippets.

@nbr23
Last active August 29, 2015 14:22
Show Gist options
  • Select an option

  • Save nbr23/380e1e32145acf2407da to your computer and use it in GitHub Desktop.

Select an option

Save nbr23/380e1e32145acf2407da to your computer and use it in GitHub Desktop.
Irregular verbs list
#! /usr/bin/python3
import sqlite3
import urllib.request
from bs4 import BeautifulSoup
import sys
def get_verbs(page, verbslist):
baseurl = "http://pasttenses.com/irregular-verbs-list" + page
data = urllib.request.urlopen(baseurl)
soup = BeautifulSoup(data)
verbs_table = soup.find('table')
verbs = verbs_table.find_all('tr')
for verb in verbs:
i = 0
k = 0
tenses = verb.find_all('td')
forms = {}
for tense in tenses:
if i in (0, 3, 4):
forms[k] = tense.get_text()
k += 1
i += 1
if k > 0:
verbslist.append(forms)
def get_all_pages():
verbslist = []
for i in range(1, 14):
if i == 1:
get_verbs("", verbslist)
else:
get_verbs("-page%i" % i, verbslist)
return verbslist
def fill_db(fname):
conn = sqlite3.connect(fname)
c = conn.cursor()
c.execute('CREATE TABLE verbs_en (id INTEGER PRIMARY KEY, infinitive TEXT, past TEXT, participle TEXT);')
verbslist = get_all_pages()
for verbs in verbslist:
c.execute('INSERT INTO verbs_en (infinitive, past, participle) VALUES ("%s", "%s", "%s");' % (verbs[0], verbs[1], verbs[2]))
conn.commit()
conn.close()
if len(sys.argv) < 2:
print("Usage: %s <db_filename>" % sys.argv[0])
sys.exit(1)
else:
fill_db(sys.argv[1])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment