Skip to content

Instantly share code, notes, and snippets.

@st0le
Last active January 13, 2016 05:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save st0le/0a73062d31b35b2160ce to your computer and use it in GitHub Desktop.
Save st0le/0a73062d31b35b2160ce to your computer and use it in GitHub Desktop.
Create DB for Movie Spoilers Py3k
import bs4 as bs
from requests import get
from time import sleep
import sqlite3
class SpoilerDB:
def __init__(self):
self.conn = sqlite3.connect('movie_spoilers.db')
self.db = self.conn.cursor()
self.db.execute('''CREATE TABLE IF NOT EXISTS spoilers (movie_name text, movie_spoiler text, year text)''')
self.conn.commit()
def add(self, movie_name, movie_year, movie_spoiler):
if not self.movie_exists(movie_name):
self.db.execute('INSERT INTO spoilers VALUES(?,?,?)', (movie_name,movie_spoiler, movie_year))
self.conn.commit()
def movie_exists(self, movie_name):
self.db.execute('SELECT 1 FROM spoilers WHERE movie_name = ?', [movie_name])
row = self.db.fetchone()
return row is not None
def list_all(self):
self.db.execute('SELECT * FROM spoilers')
return list(self.db.fetchall())
def count(self):
self.db.execute('SELECT COUNT(*) FROM spoilers')
return int(self.db.fetchone()[0])
site = "http://www.spollywood.com"
db = SpoilerDB()
for movie in db.list_all():
print(movie)
while True:
html = get(site).text
page = bs.BeautifulSoup(html,"html.parser")
movie_name = page.find('span', {'class':'title-text'}).text
movie_year = page.find('span', {'class':'year'}).text
movie_spoiler = page.find('span', {'class':'spoiler-text'}).text
db.add(movie_name,movie_year,movie_spoiler)
print(movie_name, db.count())
sleep(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment