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)