st0le
1/12/2016 - 11:06 PM

Create DB for Movie Spoilers Py3k

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)