11from threading import Thread
2+ from Helper import getItemFromHtmlElement
23import time
34import random
4-
5+ import requests
6+ from bs4 import BeautifulSoup
57
68from Target import Target
79
810class DealHunter (Thread ):
9- DELAY_TIME = 0.2
11+ DELAY_TIME = 10
1012 LOOP_COUNT = 10
1113
1214 def __init__ (self , targetItem ):
1315 Thread .__init__ (self )
14- self .item = targetItem
15- self .name = self .item .name
16- self .foundUrl = ""
16+ self .target = targetItem
17+ self .name = self .target .name
1718 self .status = "...INIT..."
1819
1920
@@ -22,17 +23,27 @@ def start(self):
2223 self .status = "...STARTED..."
2324 return super ().start ()
2425
26+ def findTheBestDeal (self ):
27+ req = requests .get (self .target .url )
28+ soup = BeautifulSoup (req .text , "lxml" )
29+ htmlElements = soup .findAll ("a" , {"class" : "search-a-product-item" })
30+
31+ listItem = []
32+ for htmlElement in htmlElements :
33+ newItem = getItemFromHtmlElement (htmlElement )
34+ if self .target .name in newItem .name and newItem .price < self .target .maxPrice :
35+ listItem .append (newItem )
36+
37+ print (self .target .name + ": " + str (len (listItem )) + " items:" )
38+ for item in listItem :
39+ # print(self.target.name + ": " + str(item.price) + "\n" + item.url)
40+ print (self .target .name + ": " + str (item .price ))
2541
2642 def run (self ):
2743 i = 0
2844 self .status = "...RUNNING..."
2945 while True :
30- i += 1
31- # print(self.name + " - " + str(i))
32- # time.sleep(random.random())
46+ self .findTheBestDeal ()
3347 time .sleep (DealHunter .DELAY_TIME )
34- if i > random .randrange (10 , 30 ): #DealHunter.LOOP_COUNT
35- break
36- # print("=== [" + self.name +"] FINISHED ===")
37- self .foundUrl = "...FINISHED..."
38- self .status = self .foundUrl
48+
49+ self .status = "...FINISHED..."
0 commit comments