-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
62 lines (44 loc) · 1.8 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from twitter import *
import re
import time
import sqlite3
class CrawlTwitNumbers:
def __init__(self):
self.Regex_Pattern = "(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})"
self.Regex = re.compile(self.Regex_Pattern)
UserPassFile = open("twitter_account.txt", "r").read()
Username = str(UserPassFile.split(":")[0])
Password = str(UserPassFile.split(":")[1].rstrip())
self.TwitterAuth = UserPassAuth(Username, Password)
self.Stream = TwitterStream(auth=self.TwitterAuth)
self.StreamIterator = self.Stream.statuses.sample()
def run(self):
for tweet in self.StreamIterator:
self.processTweet(tweet)
def processTweet(self, tweet):
if('text' not in tweet.keys()):
return False
NumberResults = self.Regex.findall(tweet['text'])
if(len(NumberResults) > 0):
NumberResults = NumberResults[0]
else:
return False
if(len(NumberResults) > 0):
print tweet['user']['screen_name'] + " : " + tweet['text'] + " : " + str(NumberResults)
self.addtodb(tweet['user']['screen_name'], NumberResults)
def addtodb(self, username, number):
Database = sqlite3.connect('database.db')
DbCursor = Database.cursor()
DbCursor.execute("CREATE TABLE IF NOT EXISTS TwitterNumbers (twittername VARCHAR(255), phone VARCHAR(255));")
Database.commit()
Insert = "INSERT INTO TwitterNumbers VALUES (?,?);"
DbCursor.execute(Insert, (username, number))
Database.commit()
print Insert
Database.commit()
DbCursor.close()
Database.close()
print "Database Commited!"
if(__name__ == "__main__"):
crawl = CrawlTwitNumbers()
crawl.run()