scraper2-hj3415 0.1.0__py3-none-any.whl → 0.1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scraper2_hj3415/cli.py +6 -2
- scraper2_hj3415/nfscrapy/nfs/pipelines.py +12 -20
- scraper2_hj3415/nfscrapy/run.py +8 -2
- {scraper2_hj3415-0.1.0.dist-info → scraper2_hj3415-0.1.5.dist-info}/METADATA +1 -2
- {scraper2_hj3415-0.1.0.dist-info → scraper2_hj3415-0.1.5.dist-info}/RECORD +8 -8
- {scraper2_hj3415-0.1.0.dist-info → scraper2_hj3415-0.1.5.dist-info}/WHEEL +0 -0
- {scraper2_hj3415-0.1.0.dist-info → scraper2_hj3415-0.1.5.dist-info}/entry_points.txt +0 -0
- {scraper2_hj3415-0.1.0.dist-info → scraper2_hj3415-0.1.5.dist-info}/licenses/LICENSE +0 -0
scraper2_hj3415/cli.py
CHANGED
|
@@ -22,12 +22,16 @@ def nfscraper():
|
|
|
22
22
|
run.c101([args.target, ], args.db_path) if args.db_path else run.c101([args.target, ])
|
|
23
23
|
if args.spider == 'c103':
|
|
24
24
|
if args.target == 'all':
|
|
25
|
-
|
|
25
|
+
x = input("It will take a long time. Are you sure? (y/N)")
|
|
26
|
+
if x == 'y' or x == 'Y':
|
|
27
|
+
run.c103(krx.get_codes(), args.db_path) if args.db_path else run.c103(krx.get_codes())
|
|
26
28
|
elif utils.is_6digit(args.target):
|
|
27
29
|
run.c103([args.target, ], args.db_path) if args.db_path else run.c103([args.target, ])
|
|
28
30
|
if args.spider == 'c104':
|
|
29
31
|
if args.target == 'all':
|
|
30
|
-
|
|
32
|
+
x = input("It will take a long time. Are you sure? (y/N)")
|
|
33
|
+
if x == 'y' or x == 'Y':
|
|
34
|
+
run.c104(krx.get_codes(), args.db_path) if args.db_path else run.c104(krx.get_codes())
|
|
31
35
|
elif utils.is_6digit(args.target):
|
|
32
36
|
run.c104([args.target, ], args.db_path) if args.db_path else run.c104([args.target, ])
|
|
33
37
|
if args.spider == 'c106':
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from itemadapter import ItemAdapter
|
|
2
|
-
from pymongo import errors
|
|
3
2
|
from pprint import pprint
|
|
4
3
|
from util_hj3415 import mongo
|
|
5
4
|
|
|
@@ -9,7 +8,7 @@ formatter = logging.Formatter('%(levelname)s: [%(name)s] %(message)s')
|
|
|
9
8
|
ch = logging.StreamHandler()
|
|
10
9
|
ch.setFormatter(formatter)
|
|
11
10
|
logger.addHandler(ch)
|
|
12
|
-
logger.setLevel(logging.
|
|
11
|
+
logger.setLevel(logging.WARNING)
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class ValidationPipeline:
|
|
@@ -22,9 +21,9 @@ class ValidationPipeline:
|
|
|
22
21
|
# eps, bps, per, pbr을 직접 계산해서 바꾸기 위해 c104 page를 찾는다.
|
|
23
22
|
try:
|
|
24
23
|
logger.debug('Try to get c104 page for calculate values..')
|
|
25
|
-
|
|
26
|
-
d, eps =
|
|
27
|
-
d, bps =
|
|
24
|
+
c104q_data = mongo.C104(spider.mongo_client, item['코드'], 'c104q')
|
|
25
|
+
d, eps = c104q_data.sum_recent_4q('EPS') # 최근 4분기 eps값을 더한다.
|
|
26
|
+
d, bps = c104q_data.latest_value('BPS') # 마지막 분기 bps값을 찾는다.
|
|
28
27
|
|
|
29
28
|
# per, pbr을 구하는 람다함수
|
|
30
29
|
cal_ratio = (lambda eps_bps, pprice:
|
|
@@ -41,13 +40,13 @@ class ValidationPipeline:
|
|
|
41
40
|
item['EPS'], item['BPS'], item['PER'], item['PBR'] = eps, bps, cal_per, cal_pbr
|
|
42
41
|
if 'c103' in spider.name:
|
|
43
42
|
# pprint(item)
|
|
44
|
-
print(" Nothing special working")
|
|
43
|
+
print(" Nothing special for working")
|
|
45
44
|
if 'c104' in spider.name:
|
|
46
|
-
#pprint(item)
|
|
47
|
-
print(" Nothing special working")
|
|
45
|
+
# pprint(item)
|
|
46
|
+
print(" Nothing special for working")
|
|
48
47
|
if spider.name == 'c106':
|
|
49
48
|
pprint(item)
|
|
50
|
-
print(" Nothing special working")
|
|
49
|
+
print(" Nothing special for working")
|
|
51
50
|
return item
|
|
52
51
|
|
|
53
52
|
|
|
@@ -61,19 +60,12 @@ class MongoPipeline:
|
|
|
61
60
|
if spider.name == 'c101':
|
|
62
61
|
page = spider.name
|
|
63
62
|
print(f" code : {item['코드']} / page : {page}")
|
|
64
|
-
|
|
65
|
-
try:
|
|
66
|
-
c101_col.create_index('date', unique=True)
|
|
67
|
-
c101_col.insert_one(ItemAdapter(item).asdict())
|
|
68
|
-
except errors.DuplicateKeyError:
|
|
69
|
-
# 스크랩한 데이터가 이미 데이터베이스에 있을경우 지우고 저장
|
|
70
|
-
c101_col.delete_many({'date': {"$gte": item['date']}})
|
|
71
|
-
c101_col.insert_one(ItemAdapter(item).asdict())
|
|
63
|
+
mongo.C101(spider.mongo_client, item['코드']).save_dict(ItemAdapter(item).asdict())
|
|
72
64
|
elif 'c103' in spider.name:
|
|
73
65
|
page = ''.join(['c103', item['title']])
|
|
74
66
|
print(f" code : {item['코드']} / page : {page}")
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
logging.debug(item['df'].to_dict('records'))
|
|
68
|
+
mongo.C103(spider.mongo_client, item['코드'], page).save_df(item['df'])
|
|
77
69
|
elif 'c104' in spider.name:
|
|
78
70
|
if item['title'].endswith('y'):
|
|
79
71
|
page = 'c104y'
|
|
@@ -83,7 +75,7 @@ class MongoPipeline:
|
|
|
83
75
|
raise ValueError
|
|
84
76
|
print(f" code : {item['코드']} / page : {page}({item['title']})")
|
|
85
77
|
logging.debug(item['df'].to_dict('records'))
|
|
86
|
-
|
|
78
|
+
mongo.C104(spider.mongo_client, item['코드'], page).save_df(item['df'])
|
|
87
79
|
elif spider.name == 'c106':
|
|
88
80
|
page = ''.join(['c106', item['title']])
|
|
89
81
|
print(f" code : {item['코드']} / page : {page}")
|
scraper2_hj3415/nfscrapy/run.py
CHANGED
|
@@ -178,7 +178,10 @@ def c103(codes: list, mongo_addr: str = ""):
|
|
|
178
178
|
:param mongo_addr: 몽고데이터베이스 URI - mongodb://...
|
|
179
179
|
:return:
|
|
180
180
|
"""
|
|
181
|
-
|
|
181
|
+
if utils.get_driver() is None:
|
|
182
|
+
print("Fail to get chrome driver...Try again", file=sys.stderr)
|
|
183
|
+
else:
|
|
184
|
+
_mp_c1034('c103', codes=codes, mongo_addr=mongo_addr)
|
|
182
185
|
|
|
183
186
|
|
|
184
187
|
@chcwd
|
|
@@ -189,7 +192,10 @@ def c104(codes: list, mongo_addr: str = ""):
|
|
|
189
192
|
:param mongo_addr: 몽고데이터베이스 URI - mongodb://...
|
|
190
193
|
:return:
|
|
191
194
|
"""
|
|
192
|
-
|
|
195
|
+
if utils.get_driver() is None:
|
|
196
|
+
print("Fail to get chrome driver...Try again", file=sys.stderr)
|
|
197
|
+
else:
|
|
198
|
+
_mp_c1034('c104', codes=codes, mongo_addr=mongo_addr)
|
|
193
199
|
|
|
194
200
|
|
|
195
201
|
@chcwd
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scraper2_hj3415
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: Gathering the stock data
|
|
5
5
|
Project-URL: Homepage, https://pypi.org/project/scraper2_hj3415/
|
|
6
6
|
Project-URL: Bug Tracker, https://pypi.org/project/scraper2_hj3415/
|
|
@@ -10,7 +10,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.7
|
|
13
|
-
Requires-Dist: pymongo
|
|
14
13
|
Requires-Dist: scrapy
|
|
15
14
|
Requires-Dist: util-hj3415
|
|
16
15
|
Description-Content-Type: text/markdown
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
scraper2_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
scraper2_hj3415/cli.py,sha256=
|
|
2
|
+
scraper2_hj3415/cli.py,sha256=bPM5XAqT7VcVON_fclHPoBhq6jjJXvN0Ywf0KRoOdM0,2194
|
|
3
3
|
scraper2_hj3415/miscrapy/run.py,sha256=ZBnHJHyUdPVcKdBK7gTyPFY9-9VIJYzhflscrowUE3k,5323
|
|
4
4
|
scraper2_hj3415/miscrapy/scrapy.cfg,sha256=KvMPqIfrkMIydPYMPb0fN9m_IBpr61N7ctwCwudcF2s,247
|
|
5
5
|
scraper2_hj3415/miscrapy/mi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -21,12 +21,12 @@ scraper2_hj3415/miscrapy/mi/spiders/usdidx.py,sha256=TQ0zSxg7xpFiudhsgyjiJ38G3DM
|
|
|
21
21
|
scraper2_hj3415/miscrapy/mi/spiders/usdkrw.py,sha256=BmLmOEK4HogPFZ1XOFXB_RhDyAO2vjRVC6a1bNnLbxQ,963
|
|
22
22
|
scraper2_hj3415/miscrapy/mi/spiders/wti.py,sha256=Yy49k-uzpUBpAu-zXhFLCWp_ZEqWXiIPXtJK3PvQUGQ,1058
|
|
23
23
|
scraper2_hj3415/nfscrapy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
-
scraper2_hj3415/nfscrapy/run.py,sha256=
|
|
24
|
+
scraper2_hj3415/nfscrapy/run.py,sha256=VpvFzwoWXzhCjA_2ZPY0VTTkbxjipemz2oQniv1SNGI,7097
|
|
25
25
|
scraper2_hj3415/nfscrapy/scrapy.cfg,sha256=yCkEgpzAwc9NWjYGaEUelGdLg3mUuuQF1Zl0k5vITH8,260
|
|
26
26
|
scraper2_hj3415/nfscrapy/nfs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
scraper2_hj3415/nfscrapy/nfs/items.py,sha256=n9xDKoGez8oRmsRLSDjjPhLCXgeJGUsKydjWc_gzgbk,1479
|
|
28
28
|
scraper2_hj3415/nfscrapy/nfs/middlewares.py,sha256=F3kL0OJMsUhiw2mPIxQLGvY3wdMxIsQl1BG2uwo_ZHo,3745
|
|
29
|
-
scraper2_hj3415/nfscrapy/nfs/pipelines.py,sha256=
|
|
29
|
+
scraper2_hj3415/nfscrapy/nfs/pipelines.py,sha256=d1MhW0b3ijAbRkF3aumz7DxZec1qDKaXkC4kOSiWa8w,4844
|
|
30
30
|
scraper2_hj3415/nfscrapy/nfs/settings.py,sha256=BkOy913N9K8Ypwuj0GiZ0zAI_WnBcjJzwjgnZOS_jqw,3472
|
|
31
31
|
scraper2_hj3415/nfscrapy/nfs/spiders/__init__.py,sha256=ULwecZkx3_NTphkz7y_qiazBeUoHFnCCWnKSjoDCZj0,161
|
|
32
32
|
scraper2_hj3415/nfscrapy/nfs/spiders/_c108.py,sha256=gOgWQ7qTOOBEZQTY79K5MWzjmz-ZpFg5wrqBhzLoXjI,4776
|
|
@@ -35,8 +35,8 @@ scraper2_hj3415/nfscrapy/nfs/spiders/c103.py,sha256=5E7jZX5UIASCtqGa0eikJVcwlKQs
|
|
|
35
35
|
scraper2_hj3415/nfscrapy/nfs/spiders/c104.py,sha256=usz29mBeXiQrv_e7uDf2ZihbENVsafEUHUJw8aHRwlw,7645
|
|
36
36
|
scraper2_hj3415/nfscrapy/nfs/spiders/c106.py,sha256=cMbpSLqG4EanKzh6rjpFLAnECt_zLR34MTZo34xu6Go,3783
|
|
37
37
|
scraper2_hj3415/nfscrapy/nfs/spiders/common.py,sha256=QTVWFF386cvoN2czFJQpTeE5jRgnlSE_Z-7y13tPyi8,2876
|
|
38
|
-
scraper2_hj3415-0.1.
|
|
39
|
-
scraper2_hj3415-0.1.
|
|
40
|
-
scraper2_hj3415-0.1.
|
|
41
|
-
scraper2_hj3415-0.1.
|
|
42
|
-
scraper2_hj3415-0.1.
|
|
38
|
+
scraper2_hj3415-0.1.5.dist-info/METADATA,sha256=Z66j2xuOhAAsDk4g77kTG9B6fWL5JWpiSHZnFF7EYJo,1131
|
|
39
|
+
scraper2_hj3415-0.1.5.dist-info/WHEEL,sha256=Fd6mP6ydyRguakwUJ05oBE7fh2IPxgtDN9IwHJ9OqJQ,87
|
|
40
|
+
scraper2_hj3415-0.1.5.dist-info/entry_points.txt,sha256=1bGP38AtuY6n2FcP_fLmpqGtFmFf8NLJWsCSWoTjF-0,60
|
|
41
|
+
scraper2_hj3415-0.1.5.dist-info/licenses/LICENSE,sha256=6kbiFSfobTZ7beWiKnHpN902HgBx-Jzgcme0SvKqhKY,1091
|
|
42
|
+
scraper2_hj3415-0.1.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|