Last active
January 13, 2016 05:45
-
-
Save st0le/0a73062d31b35b2160ce to your computer and use it in GitHub Desktop.
Create DB for Movie Spoilers Py3k
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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