Skip to content

Commit e0920d6

Browse files
author
Alex_work
committed
v2.1API parser_fin
1 parent 0984dbc commit e0920d6

File tree

4 files changed

+97
-91
lines changed

4 files changed

+97
-91
lines changed

site_cards/cards/templates/cards/report.html

-7
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@ <h3>На складе у {{ b }} шин на сумму {{ byn_2 }} рублей
2525
</h3>
2626

2727
{% endif %}
28-
{% if repid %}
29-
<h3>Повторы:</h3>
30-
{% for i in repid %}
31-
<h3> {{ i }} </h3>
32-
{% endfor %}
33-
34-
{% endif %}
3528

3629

3730
{% endblock %}

site_cards/cards/test0.py

+33-23
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import re
22
import requests
3-
#, "5409979", "887851"
4-
l_3, l_4 = [], []
5-
company = ["3186887", "3558328"]
63

4+
l_3 = []
5+
company = ["3186887", "3558328", "5409979", "887851"]
76
def pars_company(xx):
7+
88
request1 = "https://cre-api-v2.kufar.by/items-search/v1/engine/v1/search/rendered-paginated?size=200&atid=" + xx + "&cat=2075&cmp=1&sort=lst.d"
99
request2 = "https://api.kufar.by/search-api/v1/search/rendered-paginated?size=100&atid=" + xx + "&cat=2075&cmp=1&sort=lst.d&cursor=eyJ0IjoiYWJzIiwiZiI6ZmFsc2UsInAiOjF9"
1010
request_list = [request1, request2]
1111
if xx == "3186887" or xx == "5409979":
1212
request_list = [request1]
13+
c = 0
1314
for aa in request_list:
15+
c += 1
1416
a = requests.get(aa)
1517
s, l_1 = 0, []
1618
param = ['(,"subject":"..........................................................)',
@@ -35,29 +37,37 @@ def pars_company(xx):
3537
if l_1[-1][-1] == "":
3638
l_1[-1][-1] = l_1[-2][-1]
3739
del l_1[0]
40+
3841
l_3.append(l_1)
39-
if len(request_list) > 1:
40-
l_3[0] = l_3[0] + l_3[1]
41-
for el in l_3[0]:
42-
count = 0
43-
for elem in l_3[0]:
44-
if elem[1] == el[1]:
45-
count += 1
46-
if count > 1:
47-
del l_3[0][l_3[0].index(elem)]
48-
49-
ss = 0
50-
for i in l_3[0]:
51-
ss += 1
52-
i[0] = ss
53-
#print(l_3)
54-
return l_3
55-
56-
#pars_company("887851")
42+
43+
if c == 2:
44+
l_3[-1] = l_3[-2] + l_1
45+
for el in l_3[-1]:
46+
count = 0
47+
for elem in l_3[-1]:
48+
if elem[1] == el[1]:
49+
count += 1
50+
if count > 1:
51+
del l_3[-1][l_3[-1].index(elem)]
52+
53+
del l_3[-2]
54+
ss = 0
55+
for i in l_3[-1]:
56+
ss += 1
57+
i[0] = ss
58+
59+
60+
5761
for xx in company:
5862
pars_company(xx)
59-
l_4.append(l_3)
60-
print(l_3)
63+
64+
for ii in l_3:
65+
print(ii)
66+
67+
68+
69+
70+
6171

6272

6373

site_cards/cards/views.py

+64-61
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,15 @@ def report(request):
3131
else:
3232
a = Shine.objects.filter(
3333
Q(company__iregex=saler) | Q(company__iregex=saler))
34-
repid, b, byn_2, count = [], "", 0, 0
34+
b, byn_2, count = "", 0, 0
3535
count_B17 = 0
3636
for i in a:
3737
count += 1
3838
if int(i.number) == 1: b = str(i.company)
3939
elif "Б17" in i.short_note:
4040
count_B17 += 1
41-
pp = Shine.objects.filter(href=i.href)
42-
if len(pp) >= 2:
43-
for e in pp:
44-
repid.append(e.number)
45-
repid.append(i.short_note)
41+
42+
4643
byn = i.price
4744
byn_1 = ""
4845
for el in str(byn):
@@ -55,8 +52,7 @@ def report(request):
5552
if saler == "все": b = "всех продавцов"
5653

5754
return render(request, 'cards/report.html',
58-
{"b": b, "byn_2": byn_2, "repid": repid,
59-
"count": count, "count_B17": count_B17})
55+
{"b": b, "byn_2": byn_2, "count": count, "count_B17": count_B17})
6056

6157
def search(request):
6258
if request.method == "GET":
@@ -71,7 +67,7 @@ def search(request):
7167
if radius and diametr:
7268
a = Shine.objects.filter(
7369
Q(short_note__iregex=radius) | Q(short_note__iregex=radius)
74-
).filter(diametr__contains=diametr)
70+
).filter(short_note__contains=diametr)
7571
elif radius:
7672
a = Shine.objects.filter(
7773
Q(short_note__iregex=radius) | Q(short_note__iregex=radius)
@@ -106,64 +102,71 @@ def ubdate(request):
106102
#shutil.rmtree('media/media/site_cards')#удаление фоток
107103

108104
l_3 = []
109-
company = ["3186887", "3558328", "5409979", "2938958", "2938958(1)", "2938958(2)"]
105+
company = ["3186887", "3558328", "5409979", "887851"]
106+
def pars_company(xx):
107+
request1 = "https://cre-api-v2.kufar.by/items-search/v1/engine/v1/search/rendered-paginated?size=200&atid=" + xx + "&cat=2075&cmp=1&sort=lst.d"
108+
request2 = "https://api.kufar.by/search-api/v1/search/rendered-paginated?size=100&atid=" + xx + "&cat=2075&cmp=1&sort=lst.d&cursor=eyJ0IjoiYWJzIiwiZiI6ZmFsc2UsInAiOjF9"
109+
request_list = [request1, request2]
110+
if xx == "3186887" or xx == "5409979":
111+
request_list = [request1]
112+
c = 0
113+
for aa in request_list:
114+
c += 1
115+
a = requests.get(aa)
116+
s, l_1 = 0, []
117+
param = ['(,"subject":"..........................................................)',
118+
'(price_byn":"......)', '(рина","vl":"...)', '(сота","vl":"...)',
119+
'(метр","vl":"...)', '(езон","vl":".............)', '("name","v":".......................)']
120+
for i in re.split("auto.kufar", a.text):
121+
l_2 = []
122+
for y in range(0, len(param)):
123+
aa = str(re.findall(param[y], i))
124+
res = ""
125+
for x in aa[14:]:
126+
if x == '"' or x == "'":
127+
break
128+
res = res + x
129+
if y == 1: res = res[:-2]
130+
l_2.append(res)
131+
l_2.insert(0, "https://auto.kufar" + i[:16])
132+
l_2.insert(0, s)
133+
s += 1
134+
l_1.append(l_2)
135+
136+
if l_1[-1][-1] == "":
137+
l_1[-1][-1] = l_1[-2][-1]
138+
del l_1[0]
139+
140+
l_3.append(l_1)
141+
142+
if c == 2:
143+
l_3[-1] = l_3[-2] + l_1
144+
for el in l_3[-1]:
145+
count = 0
146+
for elem in l_3[-1]:
147+
if elem[1] == el[1]:
148+
count += 1
149+
if count > 1:
150+
del l_3[-1][l_3[-1].index(elem)]
151+
del l_3[-2]
152+
ss = 0
153+
for i in l_3[-1]:
154+
ss += 1
155+
i[0] = ss
156+
110157
for xx in company:
111-
if xx == company[-2]:
112-
a = requests.get(
113-
"https://api.kufar.by/search-api/v1/search/rendered-paginated?size=300&atid=2938958&cat=2075&cmp=1&sort=lst.d&cursor=eyJ0IjoicmVsIiwiYyI6W3sibiI6Imxpc3RfdGltZSIsInYiOjE2ODM2OTMyMDMwMDB9LHsibiI6ImFkX2lkIiwidiI6MTgzMjMyMzYxfV0sImYiOnRydWV9")
114-
elif xx == company[-1]:
115-
a = requests.get(
116-
"https://api.kufar.by/search-api/v1/search/rendered-paginated?size=300&atid=2938958&cmp=1&sort=lst.d&cursor=eyJ0IjoiYWJzIiwiZiI6ZmFsc2UsInAiOjF9")
117-
else:
118-
a = requests.get(
119-
"https://cre-api-v2.kufar.by/items-search/v1/engine/v1/search/rendered-paginated?size=300&atid=" + xx + "&cat=2075&cmp=1&sort=lst.d")
120-
121-
s, l_1 = 0, []
122-
param = ['(,"subject":"..........................................................)',
123-
'(price_byn":"......)', '(рина","vl":"...)', '(сота","vl":"...)',
124-
'(метр","vl":"...)', '(езон","vl":".............)', '("name","v":".......................)']
125-
for i in re.split("auto.kufar", a.text):
126-
l_2 = []
127-
for y in range(0, len(param)):
128-
aa = str(re.findall(param[y], i))
129-
res = ""
130-
for x in aa[14:]:
131-
if x == '"' or x == "'":
132-
break
133-
res = res + x
134-
if y == 1: res = res[:-2]
135-
l_2.append(res)
136-
l_2.insert(0, "https://auto.kufar" + i[:16])
137-
l_2.insert(0, s)
138-
s += 1
139-
l_1.append(l_2)
140-
if l_1[-1][-1] == "":
141-
l_1[-1][-1] = l_1[-2][-1]
142-
del l_1[0]
143-
l_3.append(l_1)
144-
145-
l_3[3] = l_3[3] + l_3[4] + l_3[5]
146-
147-
del l_3[4:]
148-
149-
for el in l_3[3]:
150-
count = 0
151-
for elem in l_3[3]:
152-
if elem[1] == el[1]:
153-
count += 1
154-
if count > 1:
155-
del l_3[3][l_3[3].index(elem)]
156-
157-
ss = 0
158-
for i in l_3[3]:
159-
ss += 1
160-
i[0] = ss
158+
pars_company(xx)
159+
160+
r_count = 0
161161
for yy in l_3:
162+
162163
for xx in yy:
164+
if yy == l_3[-1]:
165+
xx[8] = "ЦентрТрансСнаб_2"
163166
a_1 = Shine(number=xx[0], href=xx[1], company=xx[8], shirina=xx[4], visota=xx[5],
164167
diametr=xx[6], price=xx[3], short_note=xx[2])
165168
a_1.save()
166-
r_count = len(l_3[0]) + len(l_3[1]) + len(l_3[2]) + len(l_3[3])
169+
r_count += 1
167170
b_1 = 'Получны новые данные! '
168171
time = datetime.now()
169172

site_cards/db.sqlite3

8 KB
Binary file not shown.

0 commit comments

Comments
 (0)