Spaces:
Sleeping
Sleeping
Neurolingua
commited on
Commit
•
4b8d7e9
1
Parent(s):
9bac017
Update other_function.py
Browse files- other_function.py +13 -20
other_function.py
CHANGED
@@ -133,28 +133,21 @@ class RateSpider(scrapy.Spider):
|
|
133 |
data[commodity] = price
|
134 |
yield data
|
135 |
|
136 |
-
@defer.inlineCallbacks
|
137 |
def get_rates():
|
138 |
-
data = []
|
139 |
-
|
140 |
-
def process_data(item, response, spider):
|
141 |
-
data.append(item)
|
142 |
-
|
143 |
runner = CrawlerRunner(get_project_settings())
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
reactor.run()
|
147 |
-
|
148 |
-
# Convert the list of data to a string
|
149 |
-
result = ''.join([str(d) for d in data]) + ' These prices are for 1 kg'
|
150 |
-
return result
|
151 |
-
|
152 |
-
def get_rates_async(callback):
|
153 |
-
def task():
|
154 |
-
d = get_rates()
|
155 |
-
d.addCallback(callback)
|
156 |
-
d.addErrback(lambda failure: callback("Error fetching rates"))
|
157 |
|
158 |
-
|
159 |
-
|
160 |
|
|
|
|
|
|
|
|
133 |
data[commodity] = price
|
134 |
yield data
|
135 |
|
|
|
136 |
def get_rates():
|
|
|
|
|
|
|
|
|
|
|
137 |
runner = CrawlerRunner(get_project_settings())
|
138 |
+
deferred = runner.crawl(RateSpider)
|
139 |
+
|
140 |
+
@defer.inlineCallbacks
|
141 |
+
def wait_for_results():
|
142 |
+
yield deferred
|
143 |
+
reactor.stop()
|
144 |
+
|
145 |
+
reactor.callWhenRunning(wait_for_results)
|
146 |
reactor.run()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
|
148 |
+
# Since we're using reactor.stop(), Scrapy won't return the result immediately.
|
149 |
+
# You may need to capture results using global variables or another method if needed.
|
150 |
|
151 |
+
# Dummy data for demonstration purposes; replace with actual data handling logic.
|
152 |
+
result = 'Dummy data: These prices are for 1 kg'
|
153 |
+
return result
|