Add warm-up GET /evaluation/realty + production browser header set (Sec-Fetch, X-Requested-With, 25s timeout) mirroring avito.py, чтобы защитить 3-step IMV flow от server-IP анти-бот 403. Refactor step B/C парсинга в pure helpers (_parse_geo_position/_parse_price/_parse_placement_history/_parse_suggestions) + fixture-driven offline тесты из живых JSON-captures. Честный диагноз: контракт (geoFieldsHash, price-блок, categoryId=24) НЕ менялся — проверено живым capture'ом с этой машины (A→B→C, recommended 7.39M). Реальная причина #565 — скорее анти-бот по PROD-IP, не код → если #565 останется после deploy, настоящий фикс = ротация egress IP воркера (devops, отдельно). code-reviewer: ✅ APPROVE no critical — warm-up non-fatal, injected-session path unchanged, refactor preserves shapes, graceful-None сохранён, fixtures без PII. Tests: 12 new (27 total). Ruff clean. Closes #565
157 lines
No EOL
7.2 KiB
JSON
157 lines
No EOL
7.2 KiB
JSON
{
|
||
"itemParams": {
|
||
"categoryID": 24,
|
||
"rawParams": "{\"110688\":458589,\"110710\":472001,\"118593\":[1714472],\"496\":5123,\"497\":5190,\"498\":5245,\"499\":5254,\"549\":5697,\"578\":54}"
|
||
},
|
||
"placementHistory": {
|
||
"items": [
|
||
{
|
||
"exposure": 115,
|
||
"id": 7334693344,
|
||
"itemImage": "https://60.img.avito.st/image/1/1.pLl9lba3CFBbN2agdtqcl8k2CFrDpgs-yzY.knU6Ae7h8FdvPtmtqDIsoCetYbBMeBNHHd7Z3Mu4ct0",
|
||
"lastPrice": 6800000,
|
||
"lastPriceDate": 1755648000,
|
||
"removedDate": 1756077885,
|
||
"startPrice": 7000000,
|
||
"startPriceDate": 1745712000,
|
||
"title": "2-к. квартира, 43 м², 5/5 эт."
|
||
}
|
||
]
|
||
},
|
||
"price": {
|
||
"addItemUrl": "/additem?category_id=24¶ms%5B110688%5D=458589¶ms%5B110710%5D=472001¶ms%5B118593%5D=1714472¶ms%5B201%5D=1059¶ms%5B496%5D=5123¶ms%5B497%5D=5190¶ms%5B498%5D=5245¶ms%5B499%5D=5254¶ms%5B549%5D=5697¶ms%5B578%5D=54.000000",
|
||
"count": 800,
|
||
"higherPrice": 7738500,
|
||
"lowerPrice": 7148900,
|
||
"recommendedPrice": 7370000
|
||
},
|
||
"suggestions": {
|
||
"items": [
|
||
{
|
||
"address": "Свердловская область, Екатеринбург, Студенческая улица, 70",
|
||
"exposure": 63,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 8000753763,
|
||
"imageLink": "https://80.img.avito.st/image/1/1._ByNPLa1UPX7nIL1-VP1R7ucUvUzl5L0651S9w.8SVb7wAlUUR_4CrkmaCoNyDgKKpkduXIvG2ystoh9EU",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/3-k._kvartira_616_m_15_et._8000753763",
|
||
"price": 7400000,
|
||
"publishDate": 1772614160,
|
||
"title": "3-к. квартира, 61,6 м², 1/5 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская обл., муниципальное образование Екатеринбург, Екатеринбург, ул. Софьи Ковалевской, 12",
|
||
"exposure": 13,
|
||
"hasGoodPriceBadge": true,
|
||
"id": 8060842441,
|
||
"imageLink": "https://90.img.avito.st/image/1/1.kg1foLa1PuQpAOzkd86GKmcAPOThC_zlOQE85g.k3bmz3PqoQnYHj81udy1rgF9iy6rmv4pkCx5024vLeA",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/1-k._kvartira_545_m_24_et._8060842441",
|
||
"price": 7490000,
|
||
"publishDate": 1778847849,
|
||
"title": "1-к. квартира, 54,5 м², 2/4 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская область, Екатеринбург, улица Малышева, 109",
|
||
"exposure": 28,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 8066712904,
|
||
"imageLink": "https://20.img.avito.st/image/1/1.kYR7Rba1PW0N5e9tVW-QnELlP23F7v9sHeQ_bw.8emEbUAnDfDmjFC4t4lyFpKJc1ZPOte3I3elhIkqseg?cqp=2.nqHHyj8nxExgujaMxUsx0_L17NSXZ1ZQKCIQgy1FRSfAZeHHzJ12cn_5SQ7YtQ4=",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/3-k._kvartira_52_m_35_et._8066712904",
|
||
"metro": {
|
||
"colors": [
|
||
"#0A6F20"
|
||
],
|
||
"distance": "2,6 км",
|
||
"name": "Площадь 1905 года"
|
||
},
|
||
"price": 7520000,
|
||
"publishDate": 1777491918,
|
||
"title": "3-к. квартира, 52 м², 3/5 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская обл., муниципальное образование Екатеринбург, Екатеринбург, пр-т Ленина, 103",
|
||
"exposure": 9,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 8120591680,
|
||
"imageLink": "https://20.img.avito.st/image/1/1.lR-6X7a1OfbM_-v2nA2GQoP_O_YE9Pv33P479A.cG8CmMm3YH5JmMgDlCIIrqA-jWy9cDH46kaAMAnU7Nk?cqp=2.nqHHyj8nxExgujaMxUsx0_L17NSXZ1ZQKCIQgy1FRSfAZeHHzJ12cn_5SQ7YtQ4=",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/2-k._kvartira_551_m_15_et._8120591680",
|
||
"metro": {
|
||
"colors": [
|
||
"#0A6F20"
|
||
],
|
||
"distance": "2,9 км",
|
||
"name": "Динамо"
|
||
},
|
||
"price": 7530000,
|
||
"publishDate": 1779216343,
|
||
"title": "2-к. квартира, 55,1 м², 1/5 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская область, Екатеринбург, улица Коминтерна, 20",
|
||
"exposure": 101,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 7938143586,
|
||
"imageLink": "https://60.img.avito.st/image/1/1.BL5067a1qFcCS3pXcPdnzTxKqlfKQGpWEkqqVQ.NN0956Nx_wZJueNDEnfdVWPeyve6hi_bxAUHVVmd65k",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/3-k._kvartira_549_m_25_et._7938143586",
|
||
"metro": {
|
||
"colors": [
|
||
"#0A6F20"
|
||
],
|
||
"distance": "3,4 км",
|
||
"name": "Геологическая"
|
||
},
|
||
"price": 7190000,
|
||
"publishDate": 1771241225,
|
||
"title": "3-к. квартира, 54,9 м², 2/5 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская область, Екатеринбург, улица Малышева, 130Б",
|
||
"exposure": 244,
|
||
"hasGoodPriceBadge": true,
|
||
"id": 4638238123,
|
||
"imageLink": "https://30.img.avito.st/image/1/1.PpTjQ7a1kn2V40B9kxd2xebikH1d6FB8heKQfw.fCUNFxjvSx8cYylDSxHgGqQRGf7eYAxmvFs28MjGkxc?cqp=2.nqHHyj8nxExgujaMxUsx0_L17NSXZ1ZQKCIQgy1FRSfAZeHHzJ12cn_5SQ7YtQ4=",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/4-k._kvartira_562_m_15_et._4638238123",
|
||
"metro": {
|
||
"colors": [
|
||
"#0A6F20"
|
||
],
|
||
"distance": "3,1 км",
|
||
"name": "Площадь 1905 года"
|
||
},
|
||
"price": 7000000,
|
||
"publishDate": 1738063015,
|
||
"title": "4-к. квартира, 56,2 м², 1/5 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская обл., муниципальное образование Екатеринбург, Екатеринбург, Студенческая ул., 80",
|
||
"exposure": 8,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 8131017429,
|
||
"imageLink": "https://40.img.avito.st/image/1/1.4fku77a1TRBYT58QYPiv3xdPTxCQRI8RSE5PEg.pEjigFdQ2vb_8pkuReSJ1w9xXHSegiJjXXG8-7uJzYQ",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/1-k._kvartira_41_m_1125_et._8131017429",
|
||
"price": 7000000,
|
||
"publishDate": 1779276588,
|
||
"title": "1-к. квартира, 41 м², 11/25 эт."
|
||
},
|
||
{
|
||
"address": "Свердловская область, Екатеринбург, Комсомольская улица, 50",
|
||
"exposure": 102,
|
||
"hasGoodPriceBadge": false,
|
||
"id": 7901596052,
|
||
"imageLink": "https://30.img.avito.st/image/1/1.plJjuba1CrsVGdi7I7uPXSoYCLvdEsi6BRgIuQ.gy3OfVsh4ZQEyPnlX9Kse1VQDKqYHgUR6H00mt6oBvM?cqp=2.nqHHyj8nxExgujaMxUsx0_L17NSXZ1ZQKCIQgy1FRSfAZeHHzJ12cn_5SQ7YtQ4=",
|
||
"isFavorite": false,
|
||
"itemLink": "/ekaterinburg/kvartiry/4-k._kvartira_729_m_15_et._7901596052",
|
||
"price": 6990000,
|
||
"publishDate": 1770308156,
|
||
"title": "4-к. квартира, 72,9 м², 1/5 эт."
|
||
}
|
||
],
|
||
"searchSimilarUrl": "/ekaterinburg/kvartiry/prodam/panelnyy_dom-ASgBAgICAkSSA8YQ5Af6UQ?f=ASgBAQECBESSA8YQ5Af6Uay~DaTHNYK9DtCk0QEBQMoINIJZgFmEWQJFhAkXeyJmcm9tIjo0My4yLCJ0byI6NjQuOH3GmgwdeyJmcm9tIjo1ODk2MDAwLCJ0byI6ODg0NDAwMH0"
|
||
}
|
||
} |