firebasePopulate

Author: methylDragon (methylDragon.com)

Description: Crawls, and analyses articles from stated URLs (and Mothership, because it's special/troublesome), churns out parameters via analyseArticle, and pushes them to Firebase.

{"title", "url", "authors", "date", "summary", "polarity", "subjectivity", "keywords", "images", "videos"}

Initialise


In [3]:
%run 'Experiments/methylSwag.ipynb'
methylSwag()

print("\nINITIALISING MODULES\n.")
%run 'analyseArticle.ipynb'
%run 'firebasePush.ipynb'

import traceback
import newspaper
import requests
import time
from bs4 import BeautifulSoup
from timeit import default_timer as timer

start = timer()

print("OPENING LOGS\n.")
log = open("CRAWL_LOG.txt", "w")

print("LOADING URL LISTS\n.")

COMPLETED = []

QUEUE = []

#newsURLs = '''["kementah.blogspot.sg", "blog.wan-ifra.org/","www.straitstimes.com","www.todayonline.com","www.channelnewsasia.com","www.businessinsider.sg",'''
"""newsURLs = ["www.businesstimes.com.sg",
            "alvinology.com","www.asiaone.com/singapore","sg.news.yahoo.com","www.gov.sg/news",
            "www.theindependent.sg","www.tnp.sg","telegraph.co.uk/news/worldnews/asia/singapore/",
            "themiddleground.sg","www.allsingaporestuff.com","www.theonlinecitizen.com","statestimesreview.com",
            "www.tremeritus.com","thehearttruths.com","therealsingapore.com","mustsharenews.com",
            "berthahenson.wordpress.com","yawningbread.wordpress.com","singaporedaily.net",
           "www.msn.com/en-sg/news/",
         
newsURLs= ["asiancorrespondent.com/section/singapore/#fOzMdSd453Zgkgvy.97",

newsURLs= ["www.mrbrownshow.com/",
            "www.buzzfeed.com/tag/singapore","stomp.straitstimes.com/",
         "www.straitstimes.com/forum","fintechnews.sg/","www.techinasia.com/tag/singapore",
        "www.theedgesingapore.com/latest-news",
"""         
'''newsURLs = ["www.mfa.gov.sg/content/mfa/overseasmission/vientiane/News.html",
        "www.google.com.sg/search?q=singapore+news&client=ubuntu&hs=HVO&channel=fs&dcr=0&source=lnms&tbm=nws&sa=X&ved=0ahUKEwj-tcLb6u3WAhWDs48KHUDqBzg4HhD8BQgKKAE&biw=1855&bih=981"]'''

newsURLs = ["www.channelnewsasia.com","statestimesreview.com"]

mothershipURLs = ["mothership.sg/category/news","mothership.sg/category/perspectives",
                  "mothership.sg/category/community","mothership.sg/category/almost-famous",
                  "mothership.sg/category/mps-in-the-house","mothership.sg/category/humour"]



print(".\n.\nINITIALISED FIREBASEPOPULATE")


                           .     .
                        .  |\-^-/|  .    
                       /| } O.=.O { |\  
                      /´ \ \_ ~ _/ / `\
                    /´ |  \-/ ~ \-/  | `\
                    |   |  /\\ //\  |   | 
                     \|\|\/-""-""-\/|/|/
                             ______/ /
                             '------'
                _   _        _  ___                         
      _ __  ___| |_| |_ _  _| ||   \ _ _ __ _ __ _ ___ _ _  
     | '  \/ -_)  _| ' \ || | || |) | '_/ _` / _` / _ \ ' \ 
     |_|_|_\___|\__|_||_\_, |_||___/|_| \__,_\__, \___/_||_|
                        |__/                |___/          
     -------------------------------------------------------
                        methylDragon.com
                   

INITIALISING MODULES
.
OPENING LOGS
.
LOADING URL LISTS
.
.
.
INITIALISED FIREBASEPOPULATE

Crawl and analyse the latest Mothership Articles this month, outputting parameters, and pushing to Firebase


In [4]:
'''mcount = 0
mnoteng = 0
mfailed = 0
mtooshort = 0
mfetcherror = 0

print("RUN MOTHERSHIP MODULE\n")

for URL in mothershipURLs:
    print("Retrieving URL...\n")
    try:
        sourceCode = requests.get("http://" + str(URL))
        soup = BeautifulSoup(sourceCode.content, "lxml")
        print("Target URL: " + str(URL))

        for div in soup.find_all("div", class_="ind-article"):
            for a in div.find_all("a"):
                if "mothership.sg" in a.get("href"):
                    try:
                        print(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror + 1)+": ", end="")
                        parameters = analyseArticle(a.get("href")) #for getting link
                        
                        if parameters == "ZERO_SENTIMENT_ERROR": #Check for zero sentiment, means article is too short or redirected
                            mtooshort += 1
                            print("SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED!", end=" #")
                            print(str(mtooshort))
                            continue
                            
                        if parameters == "FETCH_ERROR": #Check for zero sentiment, means article is too short or redirected
                            mfetcherror += 1
                            print("SKIPPING: FETCH_ERROR, COULD NOT DOWNLOAD ARTICLE!", end=" #")
                            print(str(mfetcherror))
                            continue
            
                        if str(parameters["language"]) != "en": #Check if article is in English, if it isn't skip
                            mnoteng += 1
                            print("SKIPPING: LANG_ERROR, ARTICLE NOT IN ENGLISH!", end=" #")
                            print(str(mnoteng) + " (" + str(parameters["language"]) + ")")
                            continue
                        
                        title = str(parameters["title"])
                        url = str(parameters["url"])
                        authors = parameters["authors"]
                        date = str(parameters["date"])
                        summary = str(parameters["summary"])
                        polarity = str(parameters["polarity"])
                        subjectivity = str(parameters["subjectivity"])
                        keywords = parameters["keywords"]
                        images = str(parameters["images"])
                        videos = str(parameters["videos"])
                        text = str(parameters["text"])

                        firebasePush(title, url, authors, date, summary, polarity, subjectivity, keywords, images, videos, text)
                        mcount += 1
                        print("Processed article #", end="")
                        print(mcount)
                        
                    except Exception as ex:
                        mfailed += 1
                        print("FAILED article: #", end=" | ")
                        print(ex)
                        print(mfailed,end=" | Moving on...\n")
            
                        log.write("\n\n-----------------------------------------------")
                        log.write("\n\nMOTHERSHIP MODULE UNKNOWN ERROR DUMP | Fetch #")
                        log.write(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror))
                        log.write(": \n\n")
                        log.write("ERROR:")
                        log.write(str(traceback.format_exc()))  #FOR DEBUGGING
                        log.write("\n\n")
                        log.write("Data:")
                        log.write(str(parameters))              #FOR DEBUGGING
                        
    except Exception as ex:
        print("Failed URL", end=" | ")
        print(ex)
        
    print("\n--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------")
    string = "FINISHED: " + str(URL)
    print(string.center(63))
    log.write("PROCESSED: ")
    log.write(str(URL))
    log.write("\n")
    log.flush()
    
    print("--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------\n")

methylHalf()

print("\n  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---")
print("                FINISHED PROCESSING MOTHERSHIP")
log.write("FINISHED PROCESSING: ")
log.write("MOTHERSHIP")
log.write("\n\n")
print("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")

print("SUMMARY:")
print("Elapsed time: ",end="")
checkpoint = timer()
print(checkpoint - start,end="")
print(" seconds\n")
log.write("Elapsed Time: " + str(checkpoint - start))
log.write("\n\n")
log.flush

print(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror) + " Total Articles Accessed")
print(str(mcount) + " Processed Articles\n")

print(str(mnoteng) + " LANG_ERRORs (Article not in English)")
print(str(mtooshort) + " ZERO_SENTIMENT_ERRORs (No sentiment detected)")
print(str(mfetcherror) + " FETCH_ERRORs (Failed to fetch article)")
print(str(mfailed) + " Failed Articles\n")

firebaseRefresh()
time.sleep(1)

print("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")'''


Out[4]:
'mcount = 0\nmnoteng = 0\nmfailed = 0\nmtooshort = 0\nmfetcherror = 0\n\nprint("RUN MOTHERSHIP MODULE\n")\n\nfor URL in mothershipURLs:\n    print("Retrieving URL...\n")\n    try:\n        sourceCode = requests.get("http://" + str(URL))\n        soup = BeautifulSoup(sourceCode.content, "lxml")\n        print("Target URL: " + str(URL))\n\n        for div in soup.find_all("div", class_="ind-article"):\n            for a in div.find_all("a"):\n                if "mothership.sg" in a.get("href"):\n                    try:\n                        print(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror + 1)+": ", end="")\n                        parameters = analyseArticle(a.get("href")) #for getting link\n                        \n                        if parameters == "ZERO_SENTIMENT_ERROR": #Check for zero sentiment, means article is too short or redirected\n                            mtooshort += 1\n                            print("SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED!", end=" #")\n                            print(str(mtooshort))\n                            continue\n                            \n                        if parameters == "FETCH_ERROR": #Check for zero sentiment, means article is too short or redirected\n                            mfetcherror += 1\n                            print("SKIPPING: FETCH_ERROR, COULD NOT DOWNLOAD ARTICLE!", end=" #")\n                            print(str(mfetcherror))\n                            continue\n            \n                        if str(parameters["language"]) != "en": #Check if article is in English, if it isn\'t skip\n                            mnoteng += 1\n                            print("SKIPPING: LANG_ERROR, ARTICLE NOT IN ENGLISH!", end=" #")\n                            print(str(mnoteng) + " (" + str(parameters["language"]) + ")")\n                            continue\n                        \n                        title = str(parameters["title"])\n                        url = str(parameters["url"])\n                        authors = parameters["authors"]\n                        date = str(parameters["date"])\n                        summary = str(parameters["summary"])\n                        polarity = str(parameters["polarity"])\n                        subjectivity = str(parameters["subjectivity"])\n                        keywords = parameters["keywords"]\n                        images = str(parameters["images"])\n                        videos = str(parameters["videos"])\n                        text = str(parameters["text"])\n\n                        firebasePush(title, url, authors, date, summary, polarity, subjectivity, keywords, images, videos, text)\n                        mcount += 1\n                        print("Processed article #", end="")\n                        print(mcount)\n                        \n                    except Exception as ex:\n                        mfailed += 1\n                        print("FAILED article: #", end=" | ")\n                        print(ex)\n                        print(mfailed,end=" | Moving on...\n")\n            \n                        log.write("\n\n-----------------------------------------------")\n                        log.write("\n\nMOTHERSHIP MODULE UNKNOWN ERROR DUMP | Fetch #")\n                        log.write(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror))\n                        log.write(": \n\n")\n                        log.write("ERROR:")\n                        log.write(str(traceback.format_exc()))  #FOR DEBUGGING\n                        log.write("\n\n")\n                        log.write("Data:")\n                        log.write(str(parameters))              #FOR DEBUGGING\n                        \n    except Exception as ex:\n        print("Failed URL", end=" | ")\n        print(ex)\n        \n    print("\n--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------")\n    string = "FINISHED: " + str(URL)\n    print(string.center(63))\n    log.write("PROCESSED: ")\n    log.write(str(URL))\n    log.write("\n")\n    log.flush()\n    \n    print("--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------\n")\n\nmethylHalf()\n\nprint("\n  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---")\nprint("                FINISHED PROCESSING MOTHERSHIP")\nlog.write("FINISHED PROCESSING: ")\nlog.write("MOTHERSHIP")\nlog.write("\n\n")\nprint("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")\n\nprint("SUMMARY:")\nprint("Elapsed time: ",end="")\ncheckpoint = timer()\nprint(checkpoint - start,end="")\nprint(" seconds\n")\nlog.write("Elapsed Time: " + str(checkpoint - start))\nlog.write("\n\n")\nlog.flush\n\nprint(str(mcount + mnoteng + mfailed + mtooshort + mfetcherror) + " Total Articles Accessed")\nprint(str(mcount) + " Processed Articles\n")\n\nprint(str(mnoteng) + " LANG_ERRORs (Article not in English)")\nprint(str(mtooshort) + " ZERO_SENTIMENT_ERRORs (No sentiment detected)")\nprint(str(mfetcherror) + " FETCH_ERRORs (Failed to fetch article)")\nprint(str(mfailed) + " Failed Articles\n")\n\nfirebaseRefresh()\ntime.sleep(1)\n\nprint("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")'

Crawl and analyse the other URLs, outputting parameters, and pushing to Firebase


In [5]:
count = 0
noteng = 0
failed = 0
tooshort = 0
fetcherror = 0

print("RUN URL MODULE\n")

for URL in newsURLs:
    print("Building domain...\n")
    
    try:
        paper = newspaper.build("http://" + str(URL), memoize_articles=False)
        print("Domain building complete for: " + str(URL))
    except Exception as ex:
        print("Failed DOMAIN", end=" | ")
        print(ex, end =" | moving on...\n")

    for article in paper.articles:
        try:
            print(str(count + noteng + failed + tooshort + fetcherror + 1)+": ",end="")
            parameters = analyseArticle(article.url)

            if parameters == "ZERO_SENTIMENT_ERROR": #Check for zero sentiment, means article is too short or redirected
                tooshort += 1
                print("SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED!", end=" #")
                print(str(tooshort))
                print(article.url)
                continue
                
            if parameters == "FETCH_ERROR":
                fetcherror +=1
                print("SKIPPING: FETCH_ERROR, COULD NOT DOWNLOAD ARTICLE!", end=" #")
                print(str(fetcherror))
                continue
                
            if str(parameters["language"]) != "en": #Check if article is in English, if it isn't skip
                noteng += 1
                print("SKIPPING: LANG_ERROR, ARTICLE NOT IN ENGLISH!", end=" #")
                print(str(noteng) + " (" + str(parameters["language"]) + ")")
                print(article.url)
                continue

            title = parameters["title"]
            url = str(article.url)
            authors = parameters["authors"]
            date = str(parameters["date"])
            summary = str(parameters["summary"])
            polarity = str(parameters["polarity"])
            subjectivity = str(parameters["subjectivity"])
            keywords = parameters["keywords"]
            images = str(parameters["images"])
            videos = str(parameters["videos"])
            text = str(parameters["text"])

            firebasePush(title, url, authors, date, summary, polarity, subjectivity, keywords, images, videos, text)
            count += 1
            print("Processed article #", end="")
            print(count)
  
        except Exception as ex:
            failed += 1
            print("FAILED article: #",end="")
            print(failed, end=" | ")
            print(ex,end=" | Moving on...\n")

            log.write("\n\n-----------------------------------------------")
            log.write("\n\nURL MODULE UNKNOWN ERROR DUMP | Fetch #")
            log.write(str(count + noteng + failed + tooshort + fetcherror))
            log.write(": \n\n")
            log.write("ERROR:")
            log.write(str(traceback.format_exc()))  #FOR DEBUGGING
            log.write("\n\n")
            log.write("DATA:\n")
            log.write(str(parameters))              #FOR DEBUGGING

            
    print("\n--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------")
    string = "FINISHED: " + str(URL)
    print(string.center(63))
    log.write("PROCESSED: ")
    log.write(str(URL))
    log.write("\n")
    log.flush()
    print("--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------\n")

    print("RUNNING SUMMARY:")
    print("Elapsed time: ",end="")
    checkpoint = timer()
    print(checkpoint - start,end="")
    print(" seconds\n")
    log.write("Elapsed Time: " + str(checkpoint - start))
    log.write("\n\n")
    log.flush
    
    print(str(count + noteng + failed + tooshort + fetcherror) + " Total Articles Fetched")
    print(str(count) + " Processed Articles\n")
    
    
    print(str(noteng) + " LANG_ERRORs (Article not in English)")
    print(str(tooshort) + " ZERO_SENTIMENT_ERRORs (No sentiment detected)")
    print(str(fetcherror) + " FETCH_ERRORs (Failed to fetch article)")
    print(str(failed) + " Failed Articles\n")
    
    firebaseRefresh()
    time.sleep(1)
    
    print("--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------\n")

methylHalf()    
print("\n  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---")
print("                   FINISHED PROCESSING URLS!")
log.write("FINISHED PROCESSING: ")
log.write("URLS")
log.write("\n\n")
print("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")

print("SUMMARY:")
print(str(count + noteng + failed + tooshort + fetcherror) + " Total Articles Accessed")
print(str(count) + " Processed Articles\n")

print(str(noteng) + " LANG_ERRORs (Article not in English)")
print(str(tooshort) + " ZERO_SENTIMENT_ERRORs (No sentiment detected)")
print(str(fetcherror) + " FETCH_ERRORs (Failed to fetch article)")
print(str(failed) + " Failed Articles\n")

print("  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---\n")

print("Elapsed time: ",end="")
checkpoint = timer()
print(checkpoint - start,end="")
print(" seconds\n")
print("SHUTTING DOWN")
log.write("Elapsed Time: " + str(checkpoint - start))
log.write("\n\n")
log.write("SHUTTING DOWN")
log.flush

log.close()


RUN URL MODULE

Building domain...

Domain building complete for: www.channelnewsasia.com
1: Processed article #1
2: Processed article #2
3: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #1
http://www.channelnewsasia.com/archives/8395986/news?channelId=7469166
4: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #2
http://www.channelnewsasia.com/news/technology
5: Processed article #3
6: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #3
http://www.channelnewsasia.com/news/specialreports
7: Processed article #4
8: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #4
http://www.channelnewsasia.com/news/videos/rohingya-refugees-in-india-fight-a-legal-battle-to-avoid-9309560
9: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #5
http://www.channelnewsasia.com/news/commentary
10: Processed article #5
11: Processed article #6
12: Processed article #7
13: Processed article #8
14: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #6
http://www.channelnewsasia.com/news/catch-up-tv/conversation-with
15: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #7
http://www.channelnewsasia.com/news/videos/vietnam-s-agricultural-industry-gets-boost-from-big-business-9309562
16: Processed article #9
17: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #8
http://www.channelnewsasia.com/news/videos/aung-san-suu-kyi-to-chair-new-committee-for-rakhine-9309618
18: You must `download()` an article first!
SKIPPING: FETCH_ERROR, COULD NOT DOWNLOAD ARTICLE! #1
19: Processed article #10
20: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #9
http://www.channelnewsasia.com/news/weather
21: Processed article #11
22: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #10
http://www.channelnewsasia.com/news/lifestyle
23: Processed article #12
24: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #11
http://www.channelnewsasia.com/news/parliament
25: Processed article #13
26: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #12
http://www.channelnewsasia.com/news/catch-up-tv/the-traitor-within
27: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #13
http://www.channelnewsasia.com/news/advertise/contactsales
28: Processed article #14
29: Processed article #15
30: Processed article #16
31: Processed article #17
32: Processed article #18
33: Processed article #19
34: Processed article #20
35: Processed article #21
36: Processed article #22
37: Processed article #23
38: Processed article #24
39: Processed article #25
40: Processed article #26
41: Processed article #27
42: Processed article #28
43: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #14
http://www.channelnewsasia.com/news/videos/one-year-after-king-s-death-thais-prepare-for-final-goodbye-9309494
44: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #15
http://www.channelnewsasia.com/news/business
45: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #16
http://www.channelnewsasia.com/news/cnainsider/big-singaporean-hearts-at-cox-s-bazar-9264726
46: Processed article #29
47: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #17
http://www.channelnewsasia.com/news/cnainsider/wayang-s-aussie-performer-9310152
48: Processed article #30
49: Processed article #31
50: Processed article #32
51: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #18
http://www.channelnewsasia.com/news/videos/in-marawi-poverty-leads-many-to-extremism-9309542
52: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #19
http://www.channelnewsasia.com/news/singapore/eyes-on-the-road-more-drivers-submit-dash-cam-videos-to-police-9309594
53: Processed article #33
54: Processed article #34
55: Processed article #35
56: Processed article #36
57: Processed article #37
58: Processed article #38
59: Processed article #39
60: Processed article #40
61: Processed article #41
62: Processed article #42
63: Processed article #43
64: Processed article #44
65: Processed article #45
66: Processed article #46
67: SKIPPING: ZERO_SENTIMENT_ERROR, NO SENTIMENT DETECTED! #20
http://www.channelnewsasia.com/news/cnainsider/language-of-the-heart-learning-dialects-for-the-sake-of-the-9279350
68: Processed article #47
69: Processed article #48
70: Processed article #49

--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------
               FINISHED: www.channelnewsasia.com               
--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------

RUNNING SUMMARY:
Elapsed time: 125.58987549401354 seconds

70 Total Articles Fetched
49 Processed Articles

0 LANG_ERRORs (Article not in English)
20 ZERO_SENTIMENT_ERRORs (No sentiment detected)
1 FETCH_ERRORs (Failed to fetch article)
0 Failed Articles

--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------

Building domain...

Domain building complete for: statestimesreview.com
71: Processed article #50
72: Processed article #51
73: Processed article #52
74: Processed article #53
75: Processed article #54
76: Processed article #55
77: Processed article #56

--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------
                FINISHED: statestimesreview.com                
--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------

RUNNING SUMMARY:
Elapsed time: 151.19176326799789 seconds

77 Total Articles Fetched
56 Processed Articles

0 LANG_ERRORs (Article not in English)
20 ZERO_SENTIMENT_ERRORs (No sentiment detected)
1 FETCH_ERRORs (Failed to fetch article)
0 Failed Articles

--------------!!-rawr-=rAwR=*RAWR*=rAwR=-rawr-!!--------------

                            .     .
                         .  |\-^-/|  .    
                        /| } O.=.O { |\  

  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---
                   FINISHED PROCESSING URLS!
  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---

SUMMARY:
77 Total Articles Accessed
56 Processed Articles

0 LANG_ERRORs (Article not in English)
20 ZERO_SENTIMENT_ERRORs (No sentiment detected)
1 FETCH_ERRORs (Failed to fetch article)
0 Failed Articles

  ---!!--!!-raa--rawr-=rAwR=*RAAWR*=rAwR=-rawr--raa-!!--!!---

Elapsed time: 152.55521054001292 seconds

SHUTTING DOWN

In [ ]: